我们使用的是没有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;
}
}
我的问题是
不,你绝对不应该这样做,因为除非系统正在调用这些方法,否则你不能调用
super.onPause()
和 super.onResume()
。
相反,将逻辑提取到两个单独的方法中,在相应的
super
方法之后在两个地方调用它们。