【问题标题】:How to manage BackPress in fragment more than 10+ time?如何在超过 10 次以上的片段中管理 BackPress?
【发布时间】:2021-05-02 00:06:06
【问题描述】:

我想在片段中管理后台,我知道通过调用 onBackpress 方法来处理活动中的后台。

 @Override
    public void onBackPressed() {
            super.onBackPressed();
    }

但我在 Activity 中实现了 Fragment 并对其进行了 10 多次替换,所以每当我按下回键应用程序时都会关闭。

所以我想多次管理片段中的背压。

如果有人知道最佳解决方案,请给出您的答案,我已经尝试了类似问题给出的许多解决方案,但它不起作用。

在此先感谢 :)

【问题讨论】:

    标签: android android-activity fragment onbackpressed


    【解决方案1】:

    您可以使用这种方式在 Fragment 上处理背压

        @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        if (getView() != null) {
            getView().setFocusableInTouchMode(true);
            getView().requestFocus();
            getView().setOnKeyListener(new View.OnKeyListener() {
                @Override
                public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
                    if (keyEvent.getAction() == KeyEvent.ACTION_DOWN)
                        if (keyCode == KeyEvent.KEYCODE_BACK)
                            if (Constants.getInstance().checkIsAudioPlay()) {
                                stopAudioPlaying();
                                refreshView();
                                btnPlayALL.setText(R.string.play_all);
                                return true;
                            } else {
                                return false;
                            }
    
                    return false;
                }
            });
        }
    }
    

    【讨论】:

      【解决方案2】:

      在您的活动的onBackPressed() 方法中添加以下内容:

          FragmentManager fragmentManager = getSupportFragmentManager();
          if (fragmentManager.getFragments().size() > 0) {
              fragmentManager.popBackStack();
          }else {
              super.onBackPressed();
          }
      

      另外不要忘记覆盖片段的onPause() 方法并处理您希望片段在按下后退按钮时完成的任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-01
        相关资源
        最近更新 更多