このメソッドを初めて呼び出すと、適切な時刻 (現在時刻 + 2 分) にアラームが設定されます。このメソッドを 2 回目に呼び出すと、現在時刻 +2 分でアラームが設定されません。初回とまったく同じ時刻にアラームを設定します。私は何を間違っていますか?これは私のコードです:
private void setAlarmNow() {
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
// Vibrate for 500 milliseconds
v.vibrate(1000);
GregorianCalendar cal = new GregorianCalendar();
int minute = cal.get(Calendar.MINUTE)+2;
int hour = cal.get(Calendar.HOUR_OF_DAY);
if(minute>59){minute-=59; hour++;}
if(hour>23){hour-=23;}
Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM);
intent.putExtra(AlarmClock.EXTRA_HOUR, hour);
intent.putExtra(AlarmClock.EXTRA_MINUTES, minute);
intent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, 10);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Log.d(TAG, "Backup alarm geset.");
}