【问题标题】:What does "PowerManger.FULL_WAKE_LOCK is deprecated" mean?“PowerManger.FULL_WAKE_LOCK 已弃用”是什么意思?
【发布时间】:2013-09-24 07:52:17
【问题描述】:

我有这个代码:

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

FULL_WAKE_LOCK 被划掉,上面写着“PowerManger.FULL_WAKE_LOCK 已弃用”。代码正在运行。但这究竟是什么意思?它会引起任何问题吗?

【问题讨论】:

    标签: android wakelock powermanager


    【解决方案1】:

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

    根据the documentation:

    “大多数应用程序应该使用 FLAG_KEEP_SCREEN_ON 而不是这种类型的唤醒锁,因为它会在用户在应用程序之间移动时由平台正确管理,并且不需要特殊权限。”

    所以它现在不会导致任何问题,但在未来的 Android 版本中,它可能会。您可以阅读有关弃用的更多信息here。

    【讨论】:

    • 我不能只用 FLAG_KEEP_SCREEN_ON 覆盖标志,并且文档不清楚如何做到这一点。你能帮忙吗?
    • @Dpedrinha,使用 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
    【解决方案2】:

    您可以通过单击here 找到有关它的更多信息。它包含有关功能功能的所有详细信息。它不会对当前版本造成任何问题,但将来可能会。

    【讨论】:

      【解决方案3】:

      PowerManager.FULL_WAKE_LOCK

      此常量在 API 级别 17 中已弃用。 大多数应用程序应该使用 FLAG_KEEP_SCREEN_ON 而不是这种类型的唤醒锁,因为它会在用户在应用程序之间移动时由平台正确管理,并且不需要特殊权限。

      唤醒锁定级别:确保屏幕和键盘背光全亮。

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

      【讨论】:

        【解决方案4】:

        根据维基百科,

        不推荐使用的意思是“您仍然可以使用它,但不要指望它,因为我们可能会在未来的软件版本中用其他东西替换它(或完全删除它)。”

        一般来说,这意味着有更好的方法可以做到这一点,应该避免使用已弃用的方法。此外,不推荐使用的方法也不向后兼容,并且很可能在未来的版本中被删除。

        在开发者网站上明确提到

        “使用此 API 将显着影响设备电池寿命。除非您确实需要,否则不要获取 PowerManager.WakeLocks,尽可能使用最低级别,并确保尽快释放它们。”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-05
          • 2011-01-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-02-06
          • 2022-11-08
          • 2011-08-12
          相关资源
          最近更新 更多