【发布时间】:2016-05-28 19:38:13
【问题描述】:
在我的应用程序中,我将使用警报来通知用户事件,问题是
在 Android 版本 6.x 上-
警报会在准确时间的相同分钟后发出。
仅当设备进入睡眠模式时。
我尝试在闹钟响起之前唤醒设备,但无济于事。
谁能帮助我?这是我的代码
设置闹钟
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pendingIntent);
if (minutesBefore > 0) {
beforeCalendar.add(Calendar.MINUTE, -minutesBefore);
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, beforeCalendar.getTimeInMillis(), beforePendingIntent);
}
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pendingIntent);
if (minutesBefore > 0) {
beforeCalendar.add(Calendar.MINUTE, -minutesBefore);
alarmManager.setExact(AlarmManager.RTC_WAKEUP, beforeCalendar.getTimeInMillis(), beforePendingIntent);
}
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, alarmCalendar.getTimeInMillis(), pendingIntent);
if (minutesBefore > 0) {
beforeCalendar.add(Calendar.MINUTE, -minutesBefore);
alarmManager.set(AlarmManager.RTC_WAKEUP, beforeCalendar.getTimeInMillis(), beforePendingIntent);
}
}
弱锁
当我收到广播接收器发出的警报时,我会尝试唤醒设备 通过此代码从打盹模式
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
//Object flags;
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Alarm_WakeLock");
wl.acquire();
但同样的几分钟后,警报仍然发出!
【问题讨论】:
-
请您发布您的代码
-
您是否在警报触发后执行任何与网络相关的操作(例如在服务中)?
-
不,我的服务只是将一个活动显示为alarmActivity,以通过一些信息通知用户..
标签: android android-studio alarmmanager