在ui上我显示了一个后退按钮。有三个活动说A,B,C。活动A是启动画面。活动B是主屏幕。活动C是编辑屏幕。在编辑屏幕上我只有一个后退按钮。当用户按下我打开活动B时,活动B也包含某种http请求和响应。我想要显示堆栈中的上一个活动吗?我怎么能实现这一目标?我可以按下设备的后退按钮打开上一个活动吗?
当我按下设备上的按钮时,没有任何http请求?当我按下ui后退按钮时,我想实现这种行为。
答案 0 :(得分:4)
我认为在你的后退按钮中你可以调用活动B的意图,你的http请求和响应代码在onCreate函数中
但设备上的后退按钮不会调用onCreate
这有两个解决方案
一个人像Macarse说的那样,听听KeyDown
@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将始终调用
希望这能帮到你
答案 1 :(得分:0)
首先,在ui中显示后退按钮并不好。 每个 Android设备都有一个后退按钮。
如果您想以其他方式处理后退按钮,请检查this link。
答案 2 :(得分:0)
使用onKeyDown的解决方案可能有效,但在我看来使用onBackPressed更容易。
您可以使用以下覆盖截取Back键:
@Override
public void onBackPressed()
{
//logic here, for example an intent
Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);
}
另一方面,super.onBackPressed();
返回历史记录中的上一个活动。