我有一个应用程序 A
,它想要在另一个应用程序 B
中启动 Activity
,该应用程序不属于我,也无法编辑。
如果 B
已在运行并且在最近的应用中可见,则使用 执行
。B
所需的 Activity
没有问题 Intent
如果 B
未运行,我使用以下代码首先执行其主 Activity
,然后执行我想要执行的代码:
String bPackage = "com.example.applicationb";
PackageManager pm = getPackageManager(this);
Intent main = pm.getLaunchIntentForPackage(bPackage);
Intent wanted = new Intent();
wanted.setPackage(bPackage);
wanted.setComponent(new ComponentName(bPackage,bPackage+".WantedActivity"));
main.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
wanted.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
wanted.setExtras(mPreviouslyCreatedBundle);
startActivity(main);
startActivity(wanted);
所需的Activity
执行,但几秒钟后我收到错误并且它停止工作。我是否以错误的方式设置了Intent
?
最佳答案
确保您已为尝试重定向到另一个包的 Activity 设置了 exported="true"
基本上我的想法是当你的第二个软件包应用程序离开你需要时:
android.os.process.killprocess(android.os.process.mypid())
当您启动时,使用标志作为启动新任务:
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
关于java - 从 Android 应用程序启动两个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25348587/