こんにちは私のアプリケーションのデータを更新して1日1回それを繰り返すバックグラウンドサービスを作りたいと思っています。私は次のコードを持っています:onbootを使ったバックグラウンドの繰り返しタスク
public class OnBoot extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Create Intent
context.startService(new Intent(context, BackgroundServiceHandler.class));
}
}
私は、繰り返しアラームの時間を選択できるように設定メニューがあります。 アラームマネジャーの時刻をリセットするにはどうしたらいいですか?私はどこでアラームマネージャのコードを入れなければならないのですか?サービスやインセンティブサービスを利用する必要がありますか?サービスが実行されているかどうかを確認するには?
アラームマネージャコード:
Intent intent = new Intent(MainActivity.this, AlarmService.class);
intent.putExtra("i", 3);
PendingIntent pi = PendingIntent.getService(MainActivity.this, 9, intent, 0);
// every day at 9 am
Calendar calendar = Calendar.getInstance();
// if it's after or equal 9 am schedule for next day
if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 9) {
calendar.add(Calendar.DAY_OF_YEAR, 1); // add, not set!
}
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pi);