在一个apk中调用另外一个apk中的activity

时间:2021-12-11 03:49:05

今天忽然想到如果要在一个activity中调用另外一个activity该怎么办呢?

感觉这个应该比较简单,应为activity的启动方式就两种:显式启动、隐式启动;

显式启动的话肯定不行,那就只能使用隐式启动了,因为之前的时候,曾经如下方式隐式启动,弹出了一个app的选择框

 Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
startActivity(intent);

或者:

 Intent intent = new Intent(Intent.ACTION_MAIN);
startActivity(intent);

选择框如下所示(里边列出了所有的应用):

在一个apk中调用另外一个apk中的activity

我们有的时候可能需要从一个app启动另外一个app,这个时候我们就需要在要启动的activity的AndroidManifest.xml中添加如下内容:

<intent-filter>
<action android:name="com.zhj.test" />
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

启动另外一个activity的方式如下:

Intent intent = new Intent();
intent.setAction("com.zhj.test");
startActivity(intent);

或者:

Intent intent = new Intent("com.zhj.test");
startActivity(intent);

这样就可以隐式启动另外一个app的activity。其中最关键的就是在AndroidManifest.xml文件中的配置。