我有一个警报管理器,我正在处理警报管理员的后台任务。我使用唤醒锁唤醒CPU以完成我的后台工作,导致下面的错误。我搜索过并发现必须指定一种唤醒锁,我不应该使用ACQUIRE_CAUSES_WAKEUP
。我应该用什么呢?
我的代码:
private static PowerManager.WakeLock wakeLock;
public static void acquirWakeLock(){
if(wakeLock!=null){
wakeLock.release();
}
PowerManager pm=(PowerManager) KITILApplication.getappContext().getSystemService(Context.POWER_SERVICE);
//Error is below line
wakeLock=pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP|PowerManager.ON_AFTER_RELEASE,"aqs_wake_lock");
wakeLock.acquire();
}
public static void releaseWakeLock(){
if(wakeLock!=null)
wakeLock.release();
wakeLock=null;
}
我的错误:
Caused by: java.lang.IllegalArgumentException at android.os.PowerManager$WakeLock.<init>
答案 0 :(得分:1)
答案 1 :(得分:0)
PowerManager.ACQUIRE_CAUSES_WAKEUP
不是有效的唤醒锁定级别。
根据{{1}}方法的有效参数是:
validateWakeLockParameters()
因此,不是PARTIAL_WAKE_LOCK
SCREEN_DIM_WAKE_LOCK
SCREEN_BRIGHT_WAKE_LOCK
FULL_WAKE_LOCK
PROXIMITY_SCREEN_OFF_WAKE_LOCK
DOZE_WAKE_LOCK
DRAW_WAKE_LOCK
而是要使用一个唤醒锁,例如:
ACQUIRE_CAUSES_WAKEUP
另见:
https://developer.android.com/reference/android/os/PowerManager.html#newWakeLock