Android WakeLock

Cox*_*xer 6 android wakeup

我在获取WakeLock时遇到问题.似乎没有用.我正在尝试获取FULL_WAKE_LOCK,但是显示器都没有启用,我的应用程序也无法执行任务.

我使用以下权限:android.permission.WAKE_LOCK

我获得的代码如下所示:

PowerManager pm = (PowerManager) getBaseContext().getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag");
wl.acquire();
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

编辑:添加了另一个标志ACQUIRE_CAUSES_WAKEUP ......但行为没有变化

编辑2:我想做的就是播放音乐并在特定事件中唤醒我的设备.音乐工作正常,但设备保持黑色.

Ano*_* CH 7

WakeLock是一种保持屏幕开启的低效方式.而是使用WindowManager来做魔术.以下一行就足够了WakeLock.为此,还需要WakeLock权限.此代码也比wakeLock有效.

getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

您无需手动重新启动WakeLock.此代码将允许Android系统自动处理锁定.当您的应用程序在Foreground中时,将保留WakeLock,否则android System会自动释放Lock.

但是如果你想释放旗帜,你可以这样做:

getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)


Nic*_*ong 1

您在哪里获取唤醒锁?您需要在意图的接收者中获取它,而不是在您的意图启动的服务/活动中获取它。