在工作中,我们可能会遇到一种情况,一个机子上有我们的两个应用,它们之间可能需要启动对方的某个Activity来做些事情。除了通过包名去启动以外,还有一个更为方便的方式,那就是通过隐式的发起我们需要的Activity。
假如:apk甲想启动apk乙的activityB,那么我们要做两件事情
一、在apk乙的AndroidManifest.xml声明activityB的地方加入如下部分:
<activity android:name=".ControlSelectedActivity"
<intent-filter>
<action android:name="com.settings.start" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
上面定义的action就是我们发起时需要的东东。
二、当然就是在apk甲里启动apk乙的activityB的方法了,如下:
Intent intent = new Intent("com.settings.start");
startActivity(intent);
我们在apk甲里需要发起的地方使用上面的方式就可以了。