0

我用AActivity调用BActivity,而BActivity调用CActivity。
如下代码:
在 AActivity 中:

Intent intent = new Intent();
intent.setClass(AActivity.this, BActivity.class);
startActivity(intent);

在 BActivity 中:

Intent intent = new Intent();
intent.setClass(BActivity.this, CActivity.class);
startActivity(intent);

如果在 CActivity 中我按下后退按钮,我想直接启动 AActiviy。
但不能调用 BActivity。
我该如何修改它?

4

2 回答 2

1

您可以覆盖CActivityto中的后退按钮

@Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (keyCode) {
        case KeyEvent.KEYCODE_BACK:
           Intent intent = new Intent();
           intent.setClass(CActivity.this, AActivity.class);
           startActivity(intent);
        }
        return true;
    }
于 2013-01-17T02:44:52.910 回答
1

在 BActivity 中:

Intent intent = new Intent();
intent.setClass(BActivity.this, CActivity.class);
this.finish();  //***** Add this
startActivity(intent);

这会将 B 从返回堆栈中弹出,这样当您从 CActivity 按下返回按钮时,堆栈中的下一个,AActivity 将显示。

注意- 这与上面的答案不同。在这种方法中,您返回到 AActivity 之前的状态(大部分情况下)。在上面的第一个答案中,您将启动一个新的 AActivity 实例,从而向后台堆栈添加一个更多的活动。您需要选择哪种方法更适合您的需求。

于 2013-01-17T02:47:07.190 回答