目录
1.说明
2.功能
3.activity相关
说明
intent的各种属性可谓是非常之多,多以也就不一一细说,只写出功能和用法
功能
注意,每一个intent都可以带数据。
- 启动activity
- 启动service
- 发送广播
细说activity相关
1.附带的flag可以指定activity启动模式。(优先级高于AndroidMenifest中的指定)
2.intent-filter属性说明
action:可以有多个,只要匹配一个就可以,本质是字符串,格式最好是反向域名
catetory:可以有多个,只要匹配一个就可以,本质是字符串,格式最好也是反向域名
<category android:name="android.intent.category.DEFAULT"/>自己定义的话,这一句必须有,因为所有的隐式intent都默认加上了default。
data:可以有多个,只要匹配一个就可以
- host:主机名
- path:固定路径
- pathPattern:可变路径
. 表示任意字母 *表示任意次数 .
.*表示任意字母,任意次数
- scheme:请求头
- port:端口
<scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]
eg:intent.setDataAndType(Uri.parse("androidteach://com.example.rtyui:127/ceshi/i0i0i"), "mine/ceshi");
<intent-filter>
<action android:name="com.example.rtyui.androidTeach.Tosky"/>
<action android:name="com.example.rtyui.androidTeach.Toearth"/>
<action android:name="100002"/>
<category android:name="com.example.rtyui.androidTeach"/>
<category android:name="100007"/>
<category android:name="android.intent.category.DEFAULT"/>
<data
android:mimeType="mine/ceshi"
android:host="com.example.rtyui"
android:pathPattern="/ceshi/.*"
android:scheme="androidteach"
android:port="127"/>
</intent-filter>
intent = new Intent();
intent.setAction("com.example.rtyui.androidTeach.Tosky");
intent.setDataAndType(Uri.parse("androidteach://com.example.rtyui:127/ceshi/i0i0i"), "mine/ceshi");
findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(intent);
}
});
注意
setData 导致 type = null
setType 导致 data = null 所以使用setDataAndType
一些有用的intent
返回桌面
intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
网友评论