Android提供了在一个App中启动另一个App中的Activity的能力,这使我们的程序很容易就可以调用其他程序的功能,从而就丰富了我们App的功能。比如在微信中发送一个位置信息,对方可以点击这个位置信息启动腾讯地图并导航。这个场景在现实中作用很大,尤其是朋友在陌生的环境找不到对方时,这个功能简直就是救星。
因为每个App都会运行在自己的虚拟机中,每个虚拟机跑在一个进程中。但仔细一想,能够称为一个进程,前提是这个App必须要运行起来才行。而Android提供的能力,是不需要另一个App启动就可以将其特定的Activity启动起来的。
我们有至少两种办法达到启动另一个App中的Activity,
第一种用action启动
第二种用intent设置className或component的办法启动。举例如下。新建两个项目ProjectA和ProjectB
本文采用第一种方式:
ProjectA:AndroidManifest.xml配置
ProjectB :MainActivity代码
Intent intent = new Intent();
ComponentName cn = new ComponentName("com.cosw.qhseitsm.sdk.test","com.cosw.tsm.sdk.test.SplashActivity");
intent.setComponent(cn);
intent.setAction("android.intent.action.MAIN");
startActivityForResult(intent, RESULT_OK);
在A中调用以上代码即可实现在A中打开B应用。