美文网首页
android项目优化(一)-DelayLoad

android项目优化(一)-DelayLoad

作者: 6faef730638b | 来源:发表于2017-03-07 23:06 被阅读40次

    DelayLoad

    要点:Delay时机

    应用启动的时候,要等两次 performTraversals 都执行完成之后才会显示第一帧
    所以我们必须要在performTraversals之后延迟同时距离其时间不能太久预防闪屏与过长的白屏时间出现

    //在全局初始化handler和runnable对象
    private Handler myHandler = new Handler();
    private Runnable mLoadingRunnable = new Runnable() {
            @Override
            public void run() {
                init();
            }
        };
    
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_project);
            getWindow().getDecorView().post(new Runnable() {
                @Override
                public void run() {
                    myHandler.post(mLoadingRunnable);
                }
            });
        }
    
    

    代码追溯

    第一步:Activity.onCreate –> Activity.onStart –> Activity.onResume

    第二步:ViewRootImpl.performTraversals –>Runnable

    第三步:Runnable –> ViewRootImpl.performTraversals

    第四步:ViewRootImpl.performTraversals –> UpdateText

    第五步:UpdateText

    如此我们就实现在performTraversals实现短暂的延时加载,优化了项目的启动时间

    相关文章

      网友评论

          本文标题:android项目优化(一)-DelayLoad

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