我应该用什么来替代SCREEN_DIM_WAKE_LOCK?

14

目前我正在使用下面提到的代码,在一个闹钟通知活动中实现唤醒锁定。然而,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");
3个回答

14

Android开发者文档指定应将SCREEN_DIM_WAKE_LOCK替换为FLAG_KEEP_SCREEN_ON。经过一番查找,我找到了这个...

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

它应该放置在onCreate()方法中。


11
这是 SCREEN_BRIGHT_WAKE_LOCK 的替代品,而不是 SCREEN_DIM_WAKE_LOCK 的替代品。 - Oliv
@deprecated 大多数应用程序应该使用{@link android.view.WindowManager.LayoutParams # FLAG_KEEP_SCREEN_ON}代替这种类型的唤醒锁,因为它将由平台正确管理用户在应用程序之间移动时不需要特殊权限。 - Anthone

7

根据javadoc的描述,它可以替换FLAG_KEEP_SCREEN_ON,但是这将防止屏幕变暗 - 屏幕将保持亮度。

这个API不应该被弃用 - 在某些情况下仍然需要,例如“dim”情况。

另请参见此链接


1
在我的经验中,我可以防止屏幕关闭,但无法防止变暗。我现在身边有一个设备;屏幕变暗了,但没有关闭。 - Ted

-1

只需使用

WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON

取代

PowerManager.SCREEN_DIM_WAKE_LOCK

这将防止屏幕关闭,但不会防止变暗。 - Ted

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