Android AlarmManager 只触发一次
Android AlarmManager fires only once
我正在创建一个应用程序,您可以在其中选择在自定义时间设置每日通知。你轻按一个开关,一个时间选择器对话框出现,如果你选择一个时间,一个 AlarmManager 被设置,但它只触发一次——在正确的时间,但只触发一次。
我已经搜索过 Whosebug,但似乎找不到任何有用的东西。
这是我代码的相关部分(您可以找到其余部分 here):
mAlarmManager = (AlarmManager) SettingsActivity.this.getSystemService(ALARM_SERVICE);
Intent intent = new Intent(SettingsActivity.this, AlarmReceiver.class);
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(SettingsActivity.this,
0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar calendar = getTimeForNotification();
if(shouldHaveAlreadyNotified(calendar)){
calendar.add(Calendar.DATE, 1);
}
mAlarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),
24 * 60 * 60 * 1000, alarmPendingIntent);
将其更改为 AlarmManager.ELAPSED_REALTIME_WAKEUP
使其完全不发出任何通知。将其更改为 AlarmManager.RTC_WAKEUP
解决了问题!
感谢任何提出解决方案的人。
我正在创建一个应用程序,您可以在其中选择在自定义时间设置每日通知。你轻按一个开关,一个时间选择器对话框出现,如果你选择一个时间,一个 AlarmManager 被设置,但它只触发一次——在正确的时间,但只触发一次。
我已经搜索过 Whosebug,但似乎找不到任何有用的东西。 这是我代码的相关部分(您可以找到其余部分 here):
mAlarmManager = (AlarmManager) SettingsActivity.this.getSystemService(ALARM_SERVICE);
Intent intent = new Intent(SettingsActivity.this, AlarmReceiver.class);
PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(SettingsActivity.this,
0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar calendar = getTimeForNotification();
if(shouldHaveAlreadyNotified(calendar)){
calendar.add(Calendar.DATE, 1);
}
mAlarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),
24 * 60 * 60 * 1000, alarmPendingIntent);
将其更改为 AlarmManager.ELAPSED_REALTIME_WAKEUP
使其完全不发出任何通知。将其更改为 AlarmManager.RTC_WAKEUP
解决了问题!
感谢任何提出解决方案的人。