美文网首页
Android生命周期函数onStart中做些什么操作

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

作者: IT枫 | 来源:发表于2021-07-18 22:01 被阅读0次

    之前被人问到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中做些什么操作

          本文链接:https://www.haomeiwen.com/subject/mdrapltx.html