我正在尝试启动 activityA ,并在 ActivityA 的简历方法中使用NEW_TASK和BRING_TO_FRONT启动ActivityB。但它会转到 ActivityB ,然后回到 ActivityA 。
另一方面,如果我点击ActivityA中的按钮并启动意图,它会按预期进入ActivityB!
问题是什么?是因为我在恢复方法中调用了startActivity(activityB)
吗?解决方法是什么,因为我想在运行两个活动时启动我的应用程序,并在完成ActivityB后返回ActivityA?
还有一件事,就是创建我正在使用的意图
getPackageManager().getLaunchActivityEvent(packageName)
答案 0 :(得分:1)
尝试做这样的事情:
public void onResume() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//Your activity startup code here
}
});
}
这样做是将您的活动启动代码放在UIThread消息队列中,使其在ActivityA的恢复代码完成后触发。
答案 1 :(得分:0)
如果你想在B完成时回到活动A,那么改为使用(与你不同的方法)
StartActivityForResult(NextActivityIntent);
&安培;按照以下方法返回活动A,按照自己的意愿行事:
onActivityResult()
答案 2 :(得分:0)
Kelevandos的建议即使没有延误也会奏效。
只是为了给一些不那么“hacky”的替代......
使用StartActivityForResult
启动活动B.执行此操作时,将调用onActivityResult。首先检查它是否从B返回(只需检查请求代码。必须与您提交的内容相同)。即使B是从A调用的唯一活动 - 这只是一种很好的做法。
然后在活动A上调用finish()
。