在用户界面上,我显示了一个后退按钮。有三个活动说A,B,C。活动 A 是闪屏。活动 B 是主屏幕。活动 C 是编辑屏幕。只有在编辑屏幕上我有一个后退按钮。当用户按下我打开还包含某种 http 请求和响应的活动 B 时。我希望堆栈中的上一个活动应该显示?我怎样才能做到这一点?我可以按设备的后退按钮打开以前的活动吗?
当我按下设备上的返回按钮时,没有任何 http 请求?当我按下 ui 后退按钮时,我想实现这种行为。
我认为在您的后退按钮中,您可能会调用活动 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会一直调用这个
希望这对你有帮助
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。
首先,在ui中显示后退按钮是不好的。每个安卓设备都有一个后退按钮。
如果您想以不同的方式处理后退按钮,请查看此链接。