windowIsTranslucent属性对生命周期的影响

今天在处理一个播放器全屏的bug时,发现全屏切换时触发了上一个activity的生命周期,最终发现问题在主题的windowIsTranslucent这个属性上。先看下demo中的效果


log.png

其中A是启动Activity,B是有windowIsTranslucent属性为true的activity,需要注意的点有几个
1.启动B后,A的生命周期只走了onPause,而没有走onStop
2.在B页面切换横屏时,A的生命周期也同时触发了
3.A的生命周期为onStop,onStart,onResume,onPause
我们在学习生命周期的时候,区分onStop和onPause的调用时机是,有一个比较通俗的说说法就是如果B启动后A完全不可见,则触发onPause及onStop。如果B启动后A依然可以被被看到,比如启动了一个DialogActivity,则只会触发onPause。
以此看来加上的windowIsTranslucent=true属性的activity在处理时可以被当做一个DialogActivity,不管A是否可以被看到

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