黑屏产生的场景如下。

(1)当应用启动时间超过5s,几乎可以必现产生黑屏或者白屏。

(2)启动新进程,未做优化,有可能会发生黑屏(如当应用前台切后台,主进程被杀,这时再从后台切前台,会出现黑屏)。

我们在三星i9100上写了个简单的应用demo,重写了onCreate方法,加了一段执行超过5s的代码,如图8-1所示。运行后,黑屏问题是必现的。

android夜间待机问题的重要性(Android应用发生黑屏的场景分析)(1)

我们用酷派8150,测试手机QQ启动,会出现两次黑屏,分别出现在登录页面前和主页面消息列表前。从时延日志中可以看到LoginActivity花了7.2s,MainActivity花了6.3s。同时,这两个时间也验证了超过5s会发生黑屏,手机QQ的时延日志如图所示。

android夜间待机问题的重要性(Android应用发生黑屏的场景分析)(2)

,