1.有时候在调用的Fragment的OnResume的方法不起作用,经查阅资料和亲自测试,我的问题解决了,解决方法如下:
①,在fragment第一次加载的时候调用OnResume方法,即:
@Override
public void onResume() {
super.onResume();
//这里获取数据
getData();
Log.i("onResume","onResume");
}
②,然后再fragment再次回到视野中的时候,调用onHiddenChanged方法,即:
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if(hidden){
//pause
}else{
//resume
Log.i("onHiddenChanged","onHiddenChanged");
getData();
}
}
2,完整代码
public class ResumeFragmentextends Fragment {
@Nullable
@Override
public ViewonCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onResume() {
super.onResume();
//这里获取数据
getData();
Log.i("onResume", "onResume");
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if(hidden){
//pause
}else{
//resume
Log.i("onHiddenChanged","onHiddenChanged");
getData();
}
}
}
3.运行结果
01-11 10:55:43.614 25487-25487/com.yykjwst.acceptance I/onResume: onResume
01-11 10:56:02.974 25487-25487/com.yykjwst.acceptance I/onHiddenChanged: onHiddenChanged
01-11 10:56:13.084 25487-25487/com.yykjwst.acceptance I/onHiddenChanged: onHiddenChanged
01-11 10:56:21.524 25487-25487/com.yykjwst.acceptance I/onHiddenChanged: onHiddenChanged
4.如果你的还是不行,那就试试其他的方法,比如说
@Override public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
//相当于Fragment的onResume } else {
//相当于Fragment的onPause }
}
祝你好运