首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >屏幕通过PowerManager.ON_AFTER_RELEASE wakeLock自动唤醒

屏幕通过PowerManager.ON_AFTER_RELEASE wakeLock自动唤醒
EN

Stack Overflow用户
提问于 2012-07-19 23:37:11
回答 2查看 1.1K关注 0票数 0

在下面的示例活动中,屏幕在用户关闭(使用电源按钮)后立即自动唤醒,但仅当我使用PowerManager.ON_AFTER_RELEASE标志时才会唤醒。如果我不使用这个标志,它就不会发生。

代码语言:javascript
复制
public class TestActivity extends Activity {

    private WakeLock wakeLock;

    @Override
    protected void onResume() {
        super.onResume();

        wakeLock = ((PowerManager) getSystemService(Context.POWER_SERVICE)).newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, "test");
        wakeLock.acquire();
    }

    @Override
    protected void onPause() {
        wakeLock.release();
        super.onPause();
    }

}

有没有办法避免这种行为,同时仍然使用PowerManager.ON_AFTER_RELEASE标志?

我在使用MediaPlayer的setWakeMode()方法时也遇到了同样的问题(我签入了源代码,它也使用了这个PowerManager.ON_AFTER_RELEASE标志)

或者也许我只是误解了这个flag...what的用途,它是为它而生的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-20 15:32:53

好的,经过多次实验,似乎没有办法避免在使用这个PowerManager.ON_AFTER_RELEASE时自动唤醒屏幕。

因此,如果没有这个问题,使用MediaPlayer.setWakeMode()是不可能的。

票数 0
EN

Stack Overflow用户

发布于 2012-07-20 00:57:33

WindowManager.LayoutParams类有一个标志FLAG_TURN_SCREEN_ON。文档如下所示:

窗口标志:当设置为添加窗口或使其可见时,一旦窗口显示,系统将触发电源管理器的用户活动(就像用户已唤醒设备一样)以打开屏幕。

尝试在onResume中清除此标志

代码语言:javascript
复制
getWindow().clearFlags( WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON );

看看这会不会让屏幕在按下电源按钮后保持黑暗。您也可以在onPause中试验该标志。只是猜测而已。

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

https://stackoverflow.com/questions/11564314

复制
相关文章

相似问题

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