1

当应用程序发送通知时,我正在尝试打开屏幕。目前,当我acquire使用WakeLock它时,它会非常快速地闪烁,几乎不明显。据我所知,我的标志设置正确。AQUIRE_CAUSES_WAKEUP打开屏幕并ON_AFTER_RELEASE戳用户活动计时器)在我释放它后将其保持打开状态 - 否则,我理解它会立即自行关闭......有人有见识吗?

PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, "TAG");
if(mTurnScreenOn) {
        wl.acquire();
        Log.d("TAG", "WakeLock Acquired");
        if(pm.isScreenOn()) { Log.d("TAG", "Screen is on");
        } else { Log.d("TAG", "Screen is off"); }
}

mNotificationManager.notify(1, notification);

if(mTurnScreenOn) { //release the wakelock if needed
        wl.release();
        Log.d("TAG", "WakeLock Released");
        if(pm.isScreenOn()) { Log.d("TAG", "Screen is on");
        } else { Log.d("TAG", "Screen is off"); }
}
4

1 回答 1

0

您在哪里设置 的值mTurnScreenOn,查看您正在获取唤醒锁的代码,mTurnScreenOn==true同时在相同条件下您也正在释放它。

有关更多信息,请参阅

于 2011-11-25T05:09:12.367 回答