按“返回”按钮完成一系列活动

时间:2012-07-14 03:07:48

标签: java android android-intent

假设我的活动的主页上有一个按钮。

当我按下此按钮时,它会进入活动A

在活动A中,它会使用Intents和startActivityForResult()自动转到活动B;

在活动B中,它使用Intents和startActivityForResul()自动转到活动C;

在活动B中,它会自动启动意图去BarCode扫描程序活动并获得结果。

我的问题是当我按一个按钮返回我的主页时,需要按4次才能返回我的主页

如果我想一次回到我的主页,如何完成这一系列的活动?

4 个答案:

答案 0 :(得分:3)

不要在程序的任何地方使用/覆盖onBackPressed()

只需在父活动中添加以下方法,例如活动A和B

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
}

使用

启动onClick方法上的Activity
    startActivityForResult(intentName, 0);

在Child Activity中,您使用/覆盖onStop()方法

    @Override
protected void onStop()
{
    super.onStop();

}

答案 1 :(得分:2)

您可以覆盖以下方法返回主页

    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
    }

在该方法中,使用以下标记

创建家庭活动的意图
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

该文件说

  

如果设置,则正在启动的活动已在运行中   当前任务,然后而不是启动它的新实例   活动,其上的所有其他活动将被关闭   这个意图将作为一个传递到(现在在顶部)旧活动   新的意图。

但我想知道的是,为什么你要开始结果活动,因为你不会回到之前的活动。

答案 2 :(得分:0)

finishActivity(requestCode)

在上一个活动中使用上面的代码,这样在按下后退按钮后它将关闭所有已启动的活动

requestcode是您在第一个活动中用于启动活动B的代码

答案 3 :(得分:0)

    you may try this
    Intent intent = new Intent(currentActivity.this, otherActivity.class); // instead of otherActivity use your  activity
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("EXIT", true);
    startActivity(intent);

And, in your other onCreate() use below code -

if (getIntent().getBooleanExtra("EXIT", false)) {
    finish();
}