1

在用户界面上,我显示了一个后退按钮。有三个活动说A,B,C。活动 A 是闪屏。活动 B 是主屏幕。活动 C 是编辑屏幕。只有在编辑屏幕上我有一个后退按钮。当用户按下我打开还包含某种 http 请求和响应的活动 B 时。我希望堆栈中的上一个活动应该显示?我怎样才能做到这一点?我可以按设备的后退按钮打开以前的活动吗?

当我按下设备上的返回按钮时,没有任何 http 请求?当我按下 ui 后退按钮时,我想实现这种行为。

4

3 回答 3

4

我认为在您的后退按钮中,您可能会调用活动 B 的意图,并且您的 http 请求和响应代码在 onCreate 函数中

但是设备上的后退按钮不会调用 onCreate
有两种解决方案

正如 Macarse 所说,听 onKeyDown

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        Intent i = new Intent(ActivityC.this,ActivityB.class);    
            startActivity(i);   
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

第二种方法是在 ActivityB 的 onStart 上编写代码

protected void onStart() {
        //http request and response code
    }

当ActivityB打开时,这个onStart会一直调用这个

希望这对你有帮助

于 2010-11-02T15:48:19.770 回答
0

onKeyDown 的解决方案可能有效,但我认为使用 onBackPressed 更容易。

您可以使用以下覆盖拦截 Back-key:

@Override
public void onBackPressed()
{
   //logic here, for example an intent
   Intent intent = new Intent(this, ActivityB.class);    
   startActivity(intent);   
}

反之则super.onBackPressed();返回到历史上的前一个 Activity。

于 2013-03-07T10:26:36.177 回答
0

首先,在ui中显示后退按钮是不好的。每个安卓设备都有一个后退按钮。

如果您想以不同的方式处理后退按钮,请查看此链接

于 2010-11-02T11:19:15.390 回答