“PowerManager.FULL_WAKE_LOCK已被弃用”的意思是什么?

8

我有这段代码:

wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP
            | PowerManager.ON_AFTER_RELEASE, "MyWakeLock");

FULL_WAKE_LOCK 被删除了,它说 "PowerManager.FULL_WAKE_LOCK已被弃用"。 代码可以工作,但这究竟是什么意思? 它会引起任何问题吗?

4个回答

3

Deprecation意味着该功能可能会在Android的未来版本中被删除,或者已添加替代功能。为了确保向后兼容性并给您时间遵守新标准,不会立即删除它。

根据文档所述:

"大多数应用程序应使用FLAG_KEEP_SCREEN_ON而不是此类型的唤醒锁定,因为随着用户在应用程序之间移动,平台将正确管理它,并且不需要特殊权限."

因此,现在不会引起任何问题,但在Android的未来版本中可能会有问题。您可以在这里阅读更多有关弃用的信息。


1
我不能只是将标志覆盖为FLAG_KEEP_SCREEN_ON,而且文档上也不清楚如何操作。你能帮忙吗? - Dpedrinha
1
@Dpedrinha,使用WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON - Vamsi Tallapudi

2

您可以通过点击此处了解更多信息。该页面详细介绍了其功能。它不会对当前版本造成任何问题,但未来可能会有影响。


0

PowerManager.FULL_WAKE_LOCK

此常量在API级别17中已被弃用。 大多数应用程序应使用FLAG_KEEP_SCREEN_ON代替此类型的唤醒锁,因为随着用户在应用程序之间移动,平台将正确管理它,并且不需要特殊权限。

唤醒锁级别:确保屏幕和键盘背光以全亮度开启。

如果用户按下电源按钮,则FULL_WAKE_LOCK将被系统隐式释放,导致屏幕和CPU都关闭。与PARTIAL_WAKE_LOCK相对比。


0
根据维基百科,
“Deprecated”意味着“你仍然可以使用它,但不要指望它,因为我们可能会在未来的软件发布中用其他东西(或完全删除它)替换它。”
一般来说,这意味着有更好的方法来完成这个任务,应该避免使用已弃用的方法。此外,已弃用的方法也不向后兼容,并且很可能在未来版本中被删除。
在开发者网站上明确提到:
“使用此API将显著影响设备电池寿命。除非您真正需要它们,请勿获取PowerManager.WakeLocks,使用可能的最低级别,并确保尽快释放它们。”

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