android:我们应该在 onHiddenChanged 函数中调用 onPause 和 onResume 吗?

问题描述 投票:0回答:1

我们使用的是没有viewpage的fragment,只需按下按钮隐藏fragment A显示fragment B或显示A隐藏B,就会触发onHiddenChanged()函数

但是我们这里有一个论点,有人想直接在 onHiddenChanged() 中运行 onPause() 和 onResume() 就像运行 Activity 一样

  @Override
    public void onHiddenChanged(boolean b) {
        super.onHiddenChanged(b);
        if (b) {
            onPause();
        } else {
            onResume();
        }
    }

有人担心更改片段生命周期可能会导致另一个问题,宁愿不接触 onPause() 和 onResume()

  @Override
    public void onHiddenChanged(boolean b) {
        super.onHiddenChanged(b);
        if (b) {
            //run onfragmenthide;
        } else {
            //run onframgnetshow;
        }
    }

我的问题是

  1. 我们应该在 onHiddenChanged() 中运行 onPause() 和 onResume() 吗?
  2. 如果我们运行它,我们应该注意哪些细节?
java android android-fragments onresume onpause
1个回答
0
投票

不,你绝对不应该这样做,因为除非系统正在调用这些方法,否则你不能调用

super.onPause()
super.onResume()

相反,将逻辑提取到两个单独的方法中,在相应的

super
方法之后在两个地方调用它们。

© www.soinside.com 2019 - 2024. All rights reserved.