【问题标题】:What should I replace SCREEN_DIM_WAKE_LOCK with?我应该用什么替换 SCREEN_DIM_WAKE_LOCK?
【发布时间】:2014-03-17 05:26:22
【问题描述】:

我目前正在使用以下参考代码对警报通知活动进行唤醒锁定。但是,SCREEN_DIM_LOCK 已贬值。那么,我应该用什么来代替它呢?

//Instance of wake lock for AlarmActivity
PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE);
wakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "MyWakeLock");

【问题讨论】:

    标签: android powermanager


    【解决方案1】:

    Android 开发者文档指定 SCREEN_DIM_WAKE_LOCK 应替换为 FLAG_KEEP_SCREEN_ON。在做了一些挖掘之后,我发现了这个......

    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    

    应该放在onCreate()方法中。

    【讨论】:

    • 这是SCREEN_BRIGHT_WAKE_LOCK 的替代品,而不是SCREEN_DIM_WAKE_LOCK
    • * @deprecated 大多数应用程序应该使用 * {@link android.view.WindowManager.LayoutParams#FLAG_KEEP_SCREEN_ON} 而不是这种类型的唤醒锁,因为它将由平台正确管理 * 作为用户在应用程序之间移动并且不需要特殊权限。 */
    【解决方案2】:

    正如 javadoc 所说,它可以替换为FLAG_KEEP_SCREEN_ON,但这会防止屏幕变暗 - 它会保持明亮。

    此 API 不应被弃用 - 在某些情况下仍需要它,例如“dim”情况。

    另见this

    【讨论】:

      【解决方案3】:

      随便用

      WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
      

      代替

      PowerManager.SCREEN_DIM_WAKE_LOCK
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-01-25
        • 1970-01-01
        • 2014-05-29
        • 1970-01-01
        • 2013-08-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多