Activity 启动 至 view绘制 至 屏幕显示
实际效果:Activity冷启动的时候会闪黑屏,就是A启动B,这个过程中会闪黑屏,虽然网上说可以设置一个闪屏页,中间有个过渡效果,或者设置B为透明主题,这样在启动的时候就看不到黑屏了。只是感觉启动B的这个过程漫长而已,又比如说你从桌面启动A,你把A设为透明,你就会感觉你点击A之后半天没反应没启动起来,实际是有反应的哇,因为你设置的透明,所以A在启动的时候刚开始显示的透明也就是看到了桌面。这里的闪黑屏是没办法的,因为启动activty也是需要时间,安卓系统就是这样的。
我们的需求:,先启动一个系统dialog,之后启动一个activty,同时吧系统dialog消失掉,如果在activty的onResume()中消失掉系统dialog,就会闪桌面,然后才看到activity启动起来,这是因为在onResume()的时候activty并不在前台可见,你把系统dialog消失掉当然就看到桌面了,实验证明在onResume()中延时2秒再消失dialog就无缝切换了,延时不是可靠的方法,而我需要做的就是如何把不可靠变可靠,也就是知道什么时候activity的页面被添加至屏幕了。
- 先从Activity的oncreated开始,setContentView中的view就是activty的页面
第一步:点击setContentView方法看其调用
第二步:再点击 setContentView 到了window这类里的setContentView方法,可惜是抽象的
第三步:咋们找到它的子类也就是实现类查看,看这个方法到底怎么实现的
第四步:找到它的setContentView方法
第五步:接下来咋们关注mContentParent就ok了,我们的目的是知道mContentPa