Android 运行 多个启动意图
Android run multiple launch intents
在我的应用程序中,我试图一个接一个地启动多个应用程序活动。这些是系统上的其他应用程序
例如:
startActivity(getPackageManager().getLaunchIntentForPackage(packageInfo.packageName));
如果我调用 startActivity 只是为了让我们说 "Application1" 那么应用程序将正常启动,但是如果我连续调用 startActivity 两次(一次用于 "Applicaiton1" 一次用于 "Application2" ) 那么它只会启动第二个 startActivity - 没有错误显示表明第一个 startActivity 失败
no errors are displayed indicating that the first startActivity failed
那是因为第一个startActivity()
成功了
startActivity()
是异步的。它立即 returns,远在您请求的 activity 开始之前。连续调用 startActivity()
两次将启动这两个活动,用户最终会看到第二个活动,因为它位于任务返回堆栈的最顶层。
最有可能的是,正确答案是 "don't do what you are trying to do"。话虽这么说,唯一可能让它起作用的方法是你调用第一个 startActivity()
,然后等到控制 returns 在未来的生命周期方法中给你(例如,onStart()
) 调用第二个 startActivity()
.
在我的应用程序中,我试图一个接一个地启动多个应用程序活动。这些是系统上的其他应用程序
例如:
startActivity(getPackageManager().getLaunchIntentForPackage(packageInfo.packageName));
如果我调用 startActivity 只是为了让我们说 "Application1" 那么应用程序将正常启动,但是如果我连续调用 startActivity 两次(一次用于 "Applicaiton1" 一次用于 "Application2" ) 那么它只会启动第二个 startActivity - 没有错误显示表明第一个 startActivity 失败
no errors are displayed indicating that the first startActivity failed
那是因为第一个startActivity()
成功了
startActivity()
是异步的。它立即 returns,远在您请求的 activity 开始之前。连续调用 startActivity()
两次将启动这两个活动,用户最终会看到第二个活动,因为它位于任务返回堆栈的最顶层。
最有可能的是,正确答案是 "don't do what you are trying to do"。话虽这么说,唯一可能让它起作用的方法是你调用第一个 startActivity()
,然后等到控制 returns 在未来的生命周期方法中给你(例如,onStart()
) 调用第二个 startActivity()
.