サービスで毎晩02:00にタスクを実行する必要があります。タスクに失敗した場合は、30分後に再開するようにスケジュールしますが、成功した場合は、サービスを停止して、別の夜の02:00に再開します。なんとか02:00に開始しましたが、トリガーされた後は継続的にトリガーされます。
私のコードはにService
あり、コード自体は次のとおりです。
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
//doTasks();
MediaPlayer player = MediaPlayer.create(this,
Settings.System.DEFAULT_NOTIFICATION_URI);
player.start();
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 2);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pendingIntent);
}
doTasks()
実行する必要のあるタスクですが、遅いため、テスト目的で通知音を使用します。そしてpendingIntentはこれService
自体です。
AlarmManager
私の引き金を絶えず作るのは何のアイデアですか?