您的位置:首页 > 其它

显式、隐式Intent

2018-02-05 17:51 204 查看
显示Intent

new Intent(MainActivity.this,OtherAty.class)

直接指明将调用的Activity

隐式Intent

 在manifests中的对应activity中添加

<activity android:name=".MY_Aty">
<intent-filter>
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="com.example.hp.myapplication.intent.MY_Aty"></action>
</intent-filter>
</activity>

category的参数是DEFAULT指明当前filter的行为方式是一个Activity

com.example.hp.myapplication.intent.MY_Aty可以为任意字符串,一般约定为包名+类名,以便辨认,同时可以在被启动的Activity中添加静态常量来调用,以减少输入错误的概率

public void final String ACTION = "com.example.hp.myapplication.intent.MY_Aty";
new Intent("com.example.hp.myapplication.intent.MY_Aty");
new Intent(MY_Aty.ACTION);

两者等同。

同时通过隐式intent还可以调用其他应用之中的Activity,显式的不行

当被调用的Activity中添加了(禁止导出)

android:exported="false"


将不能被其他应用所调用,仅能在同一个应用之中调用

当有多个Activity使用同一个ACTION的时候(字符串相同),调用过程中会让你进行选择使用哪一个,再调用。

还可以通过filter中的data 来指定具体的Activity(有重名的情况下)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  intent