0
Android AlarmManagerを使用して毎日午前6時に通知を送信しようとしています。この通知は一度だけ機能し、他の日は機能しません。Androidでアラームマネージャーが繰り返されない
public class AlarmMsg extends WakefulBroadcastReceiver {
// set the alarm
public void setAlarm(Context context) {
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmIntent = PendingIntent.getBroadcast(context, 0, new Intent(context, AlarmMsg.class), 0);
Calendar firingCal = Calendar.getInstance();
Calendar currentCal = Calendar.getInstance();
firingCal.set(Calendar.HOUR, 6); // hour
firingCal.set(Calendar.MINUTE, 0);
firingCal.set(Calendar.SECOND, 0);
long intendedTime = firingCal.getTimeInMillis();
long currentTime = currentCal.getTimeInMillis();
if (intendedTime >= currentTime) {
// set from today
alarmManager.setRepeating(AlarmManager.RTC, intendedTime, AlarmManager.INTERVAL_DAY, alarmIntent);
} else {
// set from next day
firingCal.add(Calendar.DAY_OF_MONTH, 1);
intendedTime = firingCal.getTimeInMillis();
alarmManager.setRepeating(AlarmManager.RTC, intendedTime, AlarmManager.INTERVAL_DAY, alarmIntent);
}
}
と通知を作成します。
@Override
public void onReceive(Context context, Intent intent) {
// notification builder
}
をし、私のメインの活動で、私はちょうどこのようsetAlarmを呼び出す:
new AlarmMsg().setAlarm(getApplicationContext());
これは6時に通知を示していますが、それは1つだけを示してい次の日間は繰り返されません。毎日午前6時に通知が表示されます。何か案は?
onReceiveで[wake lock](https://developer.android.com/reference/android/os/PowerManager.WakeLock.html)を取得します。 – shadygoneinsane