我的应用程序运行时屏幕闪烁

6

我刚刚升级了我的Nexus S到4.0.3版本(另外一件事),但是我的应用程序在屏幕上开始闪烁。我取消勾选所有开发者选项,但仍然存在这个问题。并不总是出现,但有时当我打开屏幕时就会开始闪烁(在黑色和正常之间)。或者当我运行应用程序时,例如在登录活动中,也会出现闪烁。日志中没有错误信息。

编辑

闪烁没有明显的模式。如果我杀死应用程序并重新启动,它看起来很好。我可以使用它一段时间 - 没问题。当我旋转90度时可能会开始闪烁。或者当我关闭应用程序并重新打开时,它可能会开始闪烁。

我可以操作并切换活动,但它仍在闪烁,即使我让它保持不动。回到主屏幕并重新启动应用程序也无济于事。我可以去杀死它,重新启动后就没问题了...

在我升级之前,我从未遇到过这样的问题,也没有用户报告过它。

编辑2

我对我的应用程序进行了更多测试,我在日志中发现了以下循环模式:我尝试完全注释掉onResume并在bindData和onCreate之间进行循环。

12-28 19:34:47.828: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:47.976: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:48.043: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:48.066: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:48.191: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:48.343: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:48.367: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:48.504: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:48.574: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:48.597: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:48.738: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:48.804: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:48.832: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:49.070: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:49.187: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:49.246: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:49.398: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:49.476: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:49.500: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:49.625: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:49.687: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:49.711: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:49.867: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:50.031: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:50.058: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:50.179: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:50.242: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:50.265: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:50.406: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:50.468: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:50.492: DEBUG/IDATT.HomeActivity(23854): onResume
12-28 19:34:50.621: DEBUG/IDATT.HomeActivity(23854): onCreate
12-28 19:34:50.769: DEBUG/IDATT.HomeActivity(23854): bindData
12-28 19:34:50.797: DEBUG/IDATT.HomeActivity(23854): onResume

闪烁是在活动之间发生还是在没有任何操作时发生的? - John Giotta
你在Logcat中看到任何奇怪的错误吗? - NoBugs
1
听起来问题出现在您的活动上调用onConfigurationChanged()或onResume()时。您是否覆盖了这些方法? - Alex Paino
这只出现在你的应用程序中吗?否则可能是SDK的错误,或者与平台相关的问题。 - user717572
嘿,我现在也遇到同样的问题。你解决了吗? - alashow
显示剩余4条评论
3个回答

3

我知道这个问题很普遍,但还是值得尝试:

  • 尝试使用同样固件的另一部手机。看看是否仍然会出现问题。毕竟,这可能是硬件问题。

  • 看看在从一个应用程序切换到另一个应用程序之间等待一段时间是否会发生此问题。换句话说,按下返回箭头,等待十秒钟,看它是否发生。

  • 尝试编写一个可以重现问题的微不足道的应用程序。或者拿走你现有代码的几乎全部内容。

  • 另外,你的应用程序在做什么?缩小范围。

  • 具体来说,当用户点击后退按钮时,你要做什么?你是要完全终止它,还是只是暂停它?


1
我的回答可能会对其他人有所帮助!最有可能的原因是由于活动之间的重定向导致的闪烁。
例如:在MainActivity中,您正在检查用户是否已登录,如果没有,则将其重定向到LoginActivity。在LoginActivity中,(可能是条件不匹配或某些错误代码)它会重定向回MainActivity。
因此,来回重定向导致应用程序闪烁。

0

您确定已经禁用了所有开发者选项吗?

尝试设置-->开发者选项-->显示屏幕更新

该选项是“当屏幕更新时闪烁区域”

这应该可以解决您的问题。

如果您已经像您说的那样完成了上述步骤,我建议您启用该选项-->重新启动-->禁用该选项-->重新启动...然后查看问题是否仍然存在。

摘自:http://androidforums.com/samsung-galaxy-nexus/468501-galaxy-nexus-psychedelic-screen-flicker.html,用户表示即使禁用了该选项,闪烁仍然存在

尝试按照我的建议进行操作,并重启几次!祝好运!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接