跨进程使用startActivity来调用Activity的一些注意事项

来源:互联网 发布:学python要电脑吗 编辑:程序博客网 时间:2024/06/05 15:00

1.使用ComponentName指定了包名和类名的,例如

ComponentName comp = new ComponentName("com.zmq.firstapp", "com.zmq.firstapp.TestActivity");
Intent intent = new Intent();
intent.setComponent(comp);
startActivity(intent);
则在相应的要打开的Activity的配置中需要:
(1)使用<intent-filter>属性,增加action,其中action中的name可以为空。
<intent-filter >
<action android:name="com.zmq.firstapp.Test"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>

(2)若是没有使用<intent-filter>属性,则增加android:exported属性为true。(有<intent-filter>属性时,android:exported被默认被设置成true。没有<intent-filter>属性时,android:exported默认是false
<activity android:name="com.zmq.firstapp.TestActivity" android:exported="true">

2.使用Action
需要在Activity中配置:
<activity android:name="com.zmq.firstapp.TestActivity" android:exported="true">
<intent-filter >
<action android:name="com.zmq.firstapp.Test"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
特别注意,需要添加category.DEFAULT(因为系统会默认category.DEFAULT 属性),否则会找不到Activity。
Intent intent = new Intent();
intent.setAction("com.zmq.firstapp.Test");
startActivity(intent);








0 0
原创粉丝点击