万事须己运,他得非我贤。这篇文章主要讲述在Android中Intent的概念及应用——Intent过滤器相关选项相关的知识,希望能为你提供帮助。
一、如果多个Activity拥有同一个Intent Action,启动时用同一个Action启动会是什么情况?
如何指定某一个Activity启动?
在多个Activity拥有同一个Intent Action的情况下,如若想启动某一指定Activity,则在该<
intent-filter>
【在Android中Intent的概念及应用——Intent过滤器相关选项】中添加<
data android:scheme="app"/>
。而且,将启动的代码写为:
startActivity(new Intent("com.w.learnIntent.intent.action.MyAty", Uri.parse("app://myaty1")));
二、如何通过浏览器链接启动本地Activity?
1、在新建的项目LaunchLocalApp中新建一个Activity,并在AndroidManifest.xml文件中进行配置:
<
activity android:name=".LocalAppAty">
<
intent-filter>
<
category android:name="android.intent.category.BROWSABLE"/>
<
!--可浏览的-->
<
category android:name="android.intent.category.DEFAULT"/>
<
action android:name="android.intent.action.VIEW"/>
<
data android:scheme="app"/>
<
!--协议的名字-->
<
/intent-filter>
<
/activity>
将其安装到模拟器上。
2、编写index.html页面(WebStorm)并执行:
<
a href="app://LocalApp">
Launch My App<
/a>
<
!--LocalApp是任意参数-->
3、通过模拟器内的浏览器访问10.0.2.2:63343/WebStormProjects/index.html,点击链接即可访问该Activity
(localhost通过模拟器来访问,其地址是10.0.2.2)。
(附加:
使用WebStorm时,弹出requested without authorization,you can copy URL and open it in browser to trust it的问题。
解决方案:
File—>
Settings—>
Build,Execution,Deployment—>
Debugger中,勾选上Allow unsigned requests的选项,应用即可。)
三、如何能接收到传过来的参数?
LocalAppAty.java:
Uri uri = getIntent().getData();
System.out.println(uri);
运行程序则控制台输出:
I/System.out: app://LocalApp
推荐阅读
- Android 中使用MediaRecorder实现视频录制功能
- 前16名最佳Grammarly替代品和免费语法检查器推荐合集
- 如何在Google Chrome浏览器中打开拼写检查(操作方法教程)
- 14大假电子邮件生成器推荐合集(用于获取临时电子邮件地址)
- 如何增加Windows 10耳机和扬声器的低音(你知道哪些方法?)
- 如何使用任务计划程序自动关闭Windows 10(操作方法教程)
- 如何在Word 2019/2016/2013中制作一页风景(操作方法教程)
- 13大Windows 10的免费宏记录器软件推荐合集(可自动执行你的任务)
- Android数学应用软件推荐合集(对数学不好的人有用)