隐式打开Activity——Intent设置(如何打开)和Intent-fileter配置(怎么能被打开)
2015-05-20 15:50
267 查看
打开一个Activity的Intent设置和目标Activity的intent-filter配置是一一对应的。
首先看一个Activity的intent-filter的配置:
该配置表明该Activity在两种情况下能打开(隐式意图,显式意图不讨论):
1、使用系统标准动作android.intent.action.VIEW,默认范畴,且必须设置附加数据,数据的模式必须类似于“https://....”或“svn://...”;
2、使用自定义动作customAction,默认范畴,可以不设置附加数据;
对应的打开该Activity的代码如下:
首先看一个Activity的intent-filter的配置:
<activity android:name=".InexplicitConfigActivity" android:label="@string/app_name" > <intent-filter> <!-- 设置接收动作,可以是系统标准动作,也可以是自定义动作,值皆为一个字符串 --> <action android:name="android.intent.action.VIEW"/> <!-- 设置接收意图范畴,一般使用系统给定的标准范畴,自定义的范畴无意义 --> <category android:name="android.intent.category.DEFAULT"/> <!-- 定义接收数据格式 --> <data android:scheme="https"></data> <data android:scheme="svn"></data> </intent-filter> <intent-filter> <action android:name="customAction"/> <category android:name="android.intent.category.DEFAULT"/> </intent-filter> </activity>
该配置表明该Activity在两种情况下能打开(隐式意图,显式意图不讨论):
1、使用系统标准动作android.intent.action.VIEW,默认范畴,且必须设置附加数据,数据的模式必须类似于“https://....”或“svn://...”;
2、使用自定义动作customAction,默认范畴,可以不设置附加数据;
对应的打开该Activity的代码如下:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse("https://www.baidu.com")); intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent);
Intent intent = new Intent(); intent.setAction("customAction"); intent.addCategory(Intent.CATEGORY_DEFAULT); startActivity(intent);
相关文章推荐
- 方式SingleTask 启动Intent设置 不能如愿打开需要的Activity
- XP系统怎么设置无线网络如何启动及查看无线网络配置
- win10怎么配置添加拨号连接?如何设置PPPoE拨号连接?
- android当activity启动模式设置成singleTask如何获取intent
- 如何直接打开android系统的wifi设置页面,防止intent劫持
- 如何怎么预防Serv-U提权设置Serv-U安全配置 防提权,防溢出
- 隐式intent启动activity时设置activity选择器标题
- 隐式Intent启动Activity,action不能使用@string配置
- 隐式Intent启动Activity,action不能使用@string配置
- office 2013 每次打开word 都"配置设置".如何解决?
- 如何直接打开android系统的wifi设置页面,防止intent劫持
- Intellij IDEA 和 WebStorm 每次打开都是最近打开的项目,如何设置到可选择项目打开。
- 每次打开office 2013都提示配置进度,必须得等他下完然后重启,重启完了在打开,还是提示配置进度,怎么解决
- 如何用postman控制ODL设置端口的QoS, 并下发流表到交换机做限速配置
- Android 学习历程之二 如何在一个Service中调用Activity(Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
- android如何打开系统wifi、蓝牙等设置界面
- 使用隐式的Intent启动activity
- 如何关闭打开了多个activity的activity
- 如何设置 Notification 中PendingIntent 的 Intent