关于Fragment的OnResume

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        }

    }

祝你好运

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容