注:将A作为当前应用,B作为要被唤醒的应用
B应用需要在manifest文件对应Activity添加 android:exported="true"
方式一:getLaunchIntentForPackage唤醒
这种方式会启动要唤醒的app程序,相当于启动了B应用,进入其启动页。
"com.test.wakedemo2"为应用的包名。
//A应用中唤醒部分代码逻辑
Intent intent = getPackageManager().getLaunchIntentForPackage("com.test.wakedemo2");
if (intent != null) {
//inten可用来在两个APP间传递数据
intent.putExtra("type", "110");
//setFlags看自己情况使用,也可以不调用
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
方式二:包名+特定Activity名唤醒
这种方式并不会启动B应用的应用程序,而是还在A应用中打开了B应用中的一个Activity。
//A应用唤醒部分代码逻辑
Intent intent = new Intent(Intent.ACTION_MAIN);
/**知道要跳转应用的包命与目标Activity*/
ComponentName componentName = new ComponentName("com.test.wakedemo2", "com.test.wakedemo2.WakeActivity