在Android中Intent的概念及应用——Intent过滤器相关选项

万事须己运,他得非我贤。这篇文章主要讲述在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
 











    推荐阅读