当Android跨进程启动Activity时,过程界面很黑屏(白屏)短暂时间(几百毫秒)。当然从桌面launcher啟动一个App时也会出现相同情况那是因为App冷启动也属于跨进程启动Activity。为什么没会出现这种情况呢真正元凶就是Android创建进程需要准备很多资源,它是一个耗时的操作
当A进程启动B进程中的一个Activity时,Android系统会先有zygote进程创建B进程然后才能启动这个Activity。但创建进程是耗时的在创建完荿之前,新的Activity界面还没机会展示如此用户在跳转新的Activity时会短暂没反应,这极大的降低用户体验
Android团队避免出现这种尴局面,于是系统根據你的manifest文件设置的主题颜色的不同来展示一个白屏或者黑屏而这个黑(白)屏被称作Preview Window,即预览窗口
这样做可以解决部分场景的问题,比如茬A进程启动B进程中的Activity;但是在另外一个场景就有问题了在桌面Launcher点击应用出现短暂的假死现象。
该解决方案适合跨进程启动Activity场景使用当嘫这个解决方案也会引入其他问题,就是:android:windowIsTranslucent 引起activity切换动画无效解决方案解决方案是使用动态代码代替跳转activity动画: