AlarmManagerを使って指定した時刻に処理を行う
最終更新日:2015-09-05
AlarmManagerを使って一定時間後に処理を行うでは一定時間後に処理を行う方法を紹介しましたが、目覚まし時計のような「朝7時に何か処理を行う」には不向きです。
AlarmManagerのset()
に渡す引数を変えることで、指定した時刻に処理を行うことができます。違いはset()
の呼び方だけなので、下準備はこちらをみてください。
Calendar c = Calendar.getInstance();
c.setTimeInMillis(0);
c.set(Calendar.YEAR, 2015);
c.set(Calendar.MONTH, Calendar.SEPTEMBER);
c.set(Calendar.DAY_OF_MONTH, 6);
c.set(Calendar.HOUR_OF_DAY, 7);
c.set(Calendar.MINUTE, 0);
c.set(Calendar.SECOND, 0);
manager.set(AlarmManager.RTC, c.getTimeInMillis(), pendingIntent);
set()
の第1引数にはAlarmManager.RTC
を指定します。第2引数にはPendingIntent
を実行する時刻を指定します。上の例では2015年9月6日の朝7時を指定しました。