3

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

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

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

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

在 Activity B 中,它会自动启动 Intent 去 BarCode 扫描器活动并获取结果。

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

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

4

4 回答 4

4

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

只需在Activity A和B等父Activity中添加如下方法

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

使用 onClick 方法启动 Activity

    startActivityForResult(intentName, 0);

在子活动中,您使用/覆盖 onStop() 方法

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

}
于 2012-07-14T07:36:15.670 回答
2

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

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

在该方法中,使用以下标签创建家庭活动的意图

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

文件说

如果设置,并且正在启动的活动已经在当前任务中运行,那么不会启动该活动的新实例,而是关闭它上面的所有其他活动,并且此 Intent 将被传递到(现在顶部)作为新意图的旧活动。

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

于 2012-07-14T04:22:28.137 回答
0
finishActivity(requestCode)

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

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

于 2012-07-14T04:27:45.250 回答
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();
}
于 2012-07-14T04:31:19.327 回答