首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓WakeLock

安卓WakeLock
EN

Stack Overflow用户
提问于 2010-09-01 14:02:55
回答 3查看 4.8K关注 0票数 6

我在获取WakeLock时遇到了问题。它似乎不起作用。我正在尝试获取FULL_WAKE_LOCK,但既没有启用显示器,我的应用程序也无法执行任务。

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

我的获取代码如下所示:

代码语言:javascript
复制
PowerManager pm = (PowerManager) getBaseContext().getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK|PowerManager.ACQUIRE_CAUSES_WAKEUP, "My Tag");
wl.acquire();

我做错了什么?

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

Edit2:我所要做的就是播放音乐,在某个特定的事件中唤醒我的设备。音乐工作正常,但设备仍然黑屏。

EN

回答 3

Stack Overflow用户

发布于 2011-04-05 15:26:25

WakeLock是一种低效的保持屏幕打开的方式。取而代之的是使用WindowManager来施展魔法。下面一行代码就可以满足WakeLock了。要执行此操作,还需要WakeLock权限。此外,此代码比wakeLock更有效。

代码语言:javascript
复制
getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);

您不需要手动重新发布WakeLock。这段代码将允许Android系统自动处理Lock。当你的应用程序在前台时,WakeLock会被按住,否则安卓系统会自动释放锁。

但是,如果您确实想释放该标志,您可以使用:

代码语言:javascript
复制
getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
票数 7
EN

Stack Overflow用户

发布于 2011-09-27 17:15:07

代码语言:javascript
复制
private static PowerManager.WakeLock lockStatic = null;
private static String LOCK_NAME_STATIC = "MyWakeLock";

public static void acquireStaticLock(Context context) {
    getLock(context).acquire();
}

synchronized private static PowerManager.WakeLock getLock(Context context) {
    if (lockStatic == null) {
        PowerManager mgr = (PowerManager) context
                .getSystemService(Context.POWER_SERVICE);
        lockStatic = mgr.newWakeLock(PowerManager.FULL_WAKE_LOCK,
                LOCK_NAME_STATIC);
        lockStatic.setReferenceCounted(true);
    }

    return (lockStatic);
}

使用:

当需要激活锁时,调用acquireStaticLock()

当您需要释放锁时,在activity内部调用getLock(this).release();

同时在minifest文件中添加权限:

代码语言:javascript
复制
<uses-permission android:name="android.permission.WAKE_LOCK" />
票数 3
EN

Stack Overflow用户

发布于 2010-09-01 18:58:43

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3615405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档