有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java从Android应用程序启动两项活动

我有一个应用程序A,它想在另一个应用程序Activity中启动一个B,我没有这个应用程序,也无法编辑它

如果B已经在运行并且在最近的应用程序中可见,那么使用Intent执行B中想要的Activity是没有问题的

如果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


共 (1) 个答案

  1. # 1 楼答案

    确保你已经为你试图重定向到另一个包的活动设置了exported="true"

    基本上我的想法是当你的第二个Papackage应用离开你需要的时候:

    android.os.process.killprocess(android.os.process.mypid())
    

    当您启动时,使用标志作为开始新任务:

    setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);