1

このコードを使用して、あるクラスからアラームを設定しました

Intent myIntent = new Intent(ClassOne.this, AlarmService.class);
pendingIntent = PendingIntent.getService(ClassOne.this, 0, myIntent, 0);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(currentDate.getTime());
long when = calendar.getTimeInMillis();
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, when, (7 * 24 * 60 * 60) * 1000, pendingIntent);

ここで、保留中のアラームを別のクラスからキャンセルする必要があります。このコードをそのまま使用できますか?

Intent myIntent = new Intent(ClassTwo.this, AlarmService.class);
PendingIntent pendingIntent = PendingIntent.getService(ClassTwo.this, 0, myIntent, 0);
AlarmManager alarmManagerCancel = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManagerCancel.cancel(pendingIntent);

または、保留中のアラームをキャンセルするためのより良い/適切な方法はありますか?

4

1 に答える 1

2

アラームの登録に使用したものと同等である限り、PendingIntentどこcancel()から呼び出しても問題ありません。基になるインテントとリクエスト コードが同等である場合、2 つPendingIntentの は同等です ( equals()return )。true

于 2011-09-28T08:33:43.753 に答える