在服务中替代FULL_WAKE_LOCK

时间:2014-09-15 09:45:06

标签: android

我需要打开屏幕,然后推送消息到达,所以我从WakefulBroadcastReceiver启动intentService,并在服务中创建通知,然后通过此代码打开屏幕:

 PowerManager pm = (PowerManager)getSystemService(Context.POWER_SERVICE);
    if(!pm.isScreenOn())
    {
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE
                , "MyLock");
        wl.acquire(5000);
    }

这很好用

但是,现在不推荐使用PowerManager.FULL_WAKE_LOCK,我也没有看到如何在服务中使用LayoutParams.FLAG_KEEP_SCREEN_ON,如文档所示。
FULL_WAKE_LOCK的任何替代方案?如何避免使用弃用的api? 是否有其他方法可以在通知接收时点亮屏幕?

1 个答案:

答案 0 :(得分:0)

使用LayoutParams -

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);