设置闹钟的代码是:
mAlarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), interval, getPendingIntent());
我也尝试了
mAlarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, cal.getTimeInMillis(), interval, getPendingIntent());
其中
interval = type long of ~60000
cal = Calendar.getInstance() then modified DAY, HOUR etc.
我注意到,如果手机处于深度睡眠状态,我的闹钟就不会触发。
我也检查了命令 adb shell dumpsys alarm
警报已写入并应在选定的时间开始。那些警报有时会发生,有时候不会触发?
BroadcastReceiver可以正常工作,因为我也记录了其他可能的操作:
public class Receiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
// some things here...
}
}
AndroidManifest.xml包含以下权限:
android.alarm.permission.SET_ALARM
对于我的应用来说,这真是令人困惑和严重的问题...