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应用。


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐