美文网首页Android开发经验谈Android开发
Android的意图--->Intent的初步认识

Android的意图--->Intent的初步认识

作者: pgydbh | 来源:发表于2018-04-19 17:02 被阅读13次

目录

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);

相关文章

网友评论

    本文标题:Android的意图--->Intent的初步认识

    本文链接:https://www.haomeiwen.com/subject/onnvkftx.html