【发布时间】:2014-06-09 21:32:36
【问题描述】:
我有一个服务来监听推送通知并创建一个活动。除非设备的屏幕关闭,否则一切正常。期望的行为是通知将屏幕唤醒到锁定状态主屏幕并显示通知。
我只能通过以下方式创建此行为:
mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK |
PowerManager.ACQUIRE_CAUSES_WAKEUP |
PowerManager.ON_AFTER_RELEASE,
WAKELOCK_KEY);
但是,我看到 Android 已弃用 FULL_WAKE_LOCK 以支持 FLAG_KEEP_SCREEN_ON。但是,我在从后台服务调用的活动中尝试了这个:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
我的日志显示正在创建此活动,但屏幕仍未显示此活动。如果我按下电源按钮,显示屏会立即显示活动,证明它已创建。以下是我尝试过的一些事情的总结:
- FULL_WAKE_LOCK(有效但已弃用)
- WindowManager - FLAG_TURN_SCREEN_ON、FLAG_KEEP_SCREEN_ON(不起作用)
- Google WakefulBroadCastReceiver(不起作用)
FULL_WAKE_LOCK 有什么替代品吗?
【问题讨论】:
标签: android wakelock powermanager