このコードは、2012年12月25日にアラームを設定しました。2012年を毎年に置き換えることはどのように可能ですか?
Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
cal.set(Calendar.DATE,25);
cal.set(Calendar.MONTH,Calendar.DECEMBER);
cal.set(Calendar.YEAR,2012);
このコードは、2012年12月25日にアラームを設定しました。2012年を毎年に置き換えることはどのように可能ですか?
Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());
cal.set(Calendar.DATE,25);
cal.set(Calendar.MONTH,Calendar.DECEMBER);
cal.set(Calendar.YEAR,2012);
アラームはディスクに保持されないことに注意してください。アラームがトリガーされるずっと前に、デバイスがリセット、再起動、または単にバッテリーを使い果たす可能性が非常に高いため、AlarmManagerをこのように長期間使用することはお勧めできません。デバイス起動用のブロードキャストレシーバー(BOOT_COMPLETED)を使用してアラームを登録することもできますが、それも信頼性が低く、ICS以降では使用できない場合があります(ユーザーがアプリを手動で起動しない限り)。
上記のコメントは正しいですが、これを行う1つの方法は、各アラームが次のアラームをスケジュールすることです。