如果 Screen Lock 设置为 None ,我在 ViewFlipper 上发现相同的问题不会重新开始翻转:
ViewFlipper 小部件的一个很酷的功能是它会在屏幕关闭时自动停止翻转,如果继续则重新开始翻转。
不幸的是,如果没有设置屏幕锁定(设置 > 安全 > 屏幕锁定 > 无),则 Intent.ACTION_USER_PRESENT 永远不会广播到系统,并且 ViewFlipper 无法重新启动(永远)。
可能的修复是:
a) 在 ACTION_SCREEN_ON 而不是 ACTION_USER_PRESENT 上重新启动 ViewFlipper。b) 如果没有设置屏幕锁定并且屏幕继续,则广播 ACTION_USER_PRESENT。
重现错误的步骤:
- 在系统设置中将屏幕锁定设置为无。
- 使用 ViewFlipper 启动应用程序。
- 关闭屏幕(快速按下电源)
- 设置屏幕(快速按下电源)
结果:ViewFlipper 不再具有动画效果
Expected result: the ViewFlipper must be animated again.
看来这个问题还没有解决。我想在我自己的应用程序中修复它。有什么办法吗?
我试图解决它。Intent.ACTION_SCREEN_ON
我在我的代码中发送了广播公司。但它抛出异常:
java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.USER_PRESENT from pid=XXX, uid=XXX
然后我检查了源代码,发现这些广播器仅由系统使用。失败的。