Ранее я использовал AlarmManager
для запуска задачи в заданный интервал времени.Тем не менее, моя задача требует AsyncTask
и столкнулась с некоторыми проблемами с остановкой AlarmManager
до ее завершения.Сейчас я пытаюсь использовать IntentService
вместо этого, и мне было интересно, является ли приведенный ниже пример кода правильным способом установки повторяющегося Service
.
Задача занимает> 10 секунд и загружает данные в фоновом режиме без необходимости что-либо делать пользователю.
В моем классе MainActivity.class:
//called when user sets some in settings
public void setAlarm() {
//initialize alarm.setRepeating(...)
//...
}
В моем сигнале тревоги.class onReceive, расширяет BroadcastReceiver:
//runs when alarm reaches its set time interval
public void onReceive(Context context, Intent intent) {
//startService(...)
}
В моем AsyncService.class расширяет IntentService:
//runs when alarm starts the service
public void onHandleIntent(Nullables, etc) {
//run my AsyncTask
}