Мне приходится выполнять повторные задания (скачивать данные из интернета) в Сервисе. Я выполнил задание со следующим кодом:
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mHandler.post(mTask);
return START_STICKY;
}
private final Runnable mTask = new Runnable() {
@Override
public void run() {
downloadData(url);
mHandler.postDelayed(this, mDelay);
}
};
@Override
public void onDestroy() {
mHandler.removeCallbacks(mTask);
}
}
Если я хочу использовать IntentService вместо службы и переместить mHandler.post(mTask);
в onHandleIntent, код выполняется только 1 раз, потому что тогда IntentService уничтожается.
@Override
public void onHandleIntent(Intent intent) {
mHandler.post(mTask);
}
Можно ли это предотвратить и запустить IntentService?