【问题标题】:WakeLock.release() switches off screen even if the user was interacting with the app即使用户正在与应用程序交互,WakeLock.release() 也会关闭屏幕
【发布时间】:2013-08-25 16:45:09
【问题描述】:

我的应用程序将手机从待机状态唤醒并打开屏幕 (SCREEN_BRIGHT_WAKE_LOCK)。我不能使用 WindowManager-flags 方法,因为我的应用程序可能已经在后台运行。

问题在于,一旦用户关闭我的应用并释放 WakeLock,屏幕会立即关闭,即使用户正在与应用(或主屏幕,在应用关闭时短暂显示)进行交互。

会使用ON_AFTER_RELEASE-flag 帮助吗?

【问题讨论】:

  • 屏幕关闭,应用程序唤醒手机,用户完成您的应用程序,屏幕关闭到初始状态。这不是一贯的行为吗?为什么这么糟糕?
  • 我认为这是有意的行为。文档甚至提到以下内容:“屏幕可能会在您释放唤醒锁后不久关闭,或者如果仍有其他唤醒锁仍然持有,则屏幕可能不会关闭。”
  • 我的情况和尼克一样。该行为不是用户所期望的。用户从不期望他们的屏幕在退出应用程序或活动时完全变黑。如果他们有屏幕超时,操作系统应该遵守。当唤醒锁被释放时,Android 不会遵守这一点。这是他们设计中的一个缺陷。

标签: android wakelock


【解决方案1】:

是的,您想使用ON_AFTER_RELEASE 标志。

当这个唤醒锁被释放时,戳一下用户活动计时器,让屏幕停留更长时间。

【讨论】:

  • 谢谢,这确实解决了问题!
  • 如果你在终止activity的时候立即锁屏,这将不起作用。
  • 嗯,我测试了 Geobits 的答案,它在我的设备上运行良好,但我的一些用户仍然报告说,当我释放唤醒锁时,他们的屏幕会关闭......是否知道它不起作用跨设备一致?
  • 如果您将屏幕超时设置为小于 30 秒或更短,这将不起作用。我有一个导航应用程序,我在导航之前设置了唤醒锁,并在导航结束后释放它。在这种情况下,它不会覆盖屏幕超时。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-12
  • 2017-03-25
  • 1970-01-01
  • 2012-01-04
  • 2014-10-30
  • 1970-01-01
相关资源
最近更新 更多