【问题标题】:activity and back button活动和返回按钮
【发布时间】:2013-03-07 18:26:36
【问题描述】:

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

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

【问题讨论】:

    标签: android button back


    【解决方案1】:

    我认为在您的后退按钮中,您可以调用活动 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会一直调用这个

    希望对你有帮助

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        您可以通过以下覆盖拦截返回键:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-06-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-07
          • 2020-12-29
          • 1970-01-01
          相关资源
          最近更新 更多