我有一个应用A
,希望在另一个应用Activity
中启动B
,我不会拥有也无法编辑。
如果B
已在最近的应用中运行且可见,那么使用Activity
执行B
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
执行,但几秒钟后我收到一个错误,它就会停止工作。我是以错误的方式设置{{1}}吗?
答案 0 :(得分:0)
确保您已为要尝试重定向到其他程序包的活动设置exported="true"
基本上我的想法是当你的第二个包装应用程序离开你需要时:
android.os.process.killprocess(android.os.process.mypid())
当你启动use flag作为启动新任务时:
setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);