Android生命周期函数onStart中做些什么操作

之前被人问到Activity的生命周期函数onStart中能做些什么操作,我想了想,可以请求网络,难道在onCreate中就不能请求网路,难道在onResume中就不能请求网路,也是既然在这些方法中都可以请求网路,那onStart方法中我们能做什么比较恰当呢?
在《Android开发技术探索》一书中发现了一段代码

protected void onStart() {
    super.onStart();
    ViewTreeObserver observer = view.getViewTreeObserver();
    observer.adddOnGlobalLayoutListener(new OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
            int width = view.gerMeasureWidth();
            int height = view.getMeasureHeight();
        }
    });
}

复制代码
这段代码实现的功能是获取View的宽高,详解如下:

ViewTreeObserver类

使用ViewTreeObserver的众多回调可以完成这个功能。View中有ViewTreeObserver类的实例,获取该对象然后添加OnGlobalLayoutListener监听,当View树的状态发生改变或者View树内部的View的可见性发生变化时,onGlobalLayout()方法将被回调,因此这是获取View的宽高的一个好的时机。
得出的结论是设置View的监听器。

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

推荐阅读更多精彩内容