从ActivityA启动ActivityB而不返回ActivityA

时间:2015-09-29 11:31:25

标签: android

我正在尝试启动 activityA ,并在 ActivityA 的简历方法中使用NEW_TASK和BRING_TO_FRONT启动ActivityB。但它会转到 ActivityB ,然后回到 ActivityA

另一方面,如果我点击ActivityA中的按钮并启动意图,它会按预期进入ActivityB!

问题是什么?是因为我在恢复方法中调用了startActivity(activityB)吗?解决方法是什么,因为我想在运行两个活动时启动我的应用程序,并在完成ActivityB后返回ActivityA?

还有一件事,就是创建我正在使用的意图

  getPackageManager().getLaunchActivityEvent(packageName)

3 个答案:

答案 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()