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的监听器。

你可能感兴趣的:(Android生命周期函数onStart中做些什么操作)