java - 从 Android 应用程序启动两个 Activity

标签 java android android-intent android-activity

我有一个应用程序 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/

相关文章:

java - 静态字段无法在静态 block 中前向引用,但可以赋值

android:更改用于导航的可扩展 ListView 的指示器图标和大小

java - Intent 不起作用 - 未找到 Activity

java - 如何更新对象列表JDO

Jenkins 上的 Java 本地化测试失败

java - 如何在java中进行相互SSL认证

iphone - 如何使用 Titanium 查询父 View 的 subview ?

安卓; ListView 是显示多个独立进度条的最佳方法吗?

java - Qark 报告 java 文件 : zzaup, zzst、zze、MediaButtonReceiver、TaskStackBuilder 上的 PendingIntent 安全问题

android - Android L 中显示错误的默认应用列表