您的位置:首页 > 其它

学习笔记3: IntentFilter的匹配规则

2015-12-29 10:40 465 查看

1.启动Activity分为两种:

显式调用:

Intent intent=new Intent(MainActivity.this, SecondActivity.class); 
startActivity(intent);

隐式调用:

Intent intent = new Intent();
intent.setAction("testActivity");
intent.addCategory("test");
startActivity(intent);

mainfest:

        <activity
            android:name="com.example.mytest.TestActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="testActivity" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="test" />
            </intent-filter>
        </activity>

2.匹配规则

1.只有Intent同时匹配action,category,data 才算完全匹配,才能启动目标Activity
2.如果在mainfest里面有多个 <intent-filter>,intent 只需要匹配一个就能成功启动
3.action匹配规则: intent中的action
能够和 <intent-filter> 中的任何一个action完全相同(大小写也要一样),才匹配成功
4.category匹配规则:intent中所有的category
都必须和<intent-filter>中的任何一个category 完全相同,才匹配成功
5.data匹配规则:好像好复杂, 看这贴:   intent-filter 之 data

3.注意
1.如果要采用隐显调用,category 都必须写上<category android:name="android.intent.category.DEFAULT" />

2.这一组 action 和 category 比较重要,二者的共同作用是用来标明这是一个入口Activity,缺少一个就没有意义了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  自学笔记