Мне нужен сервис, который всегда должен работать до тех пор, пока он не будет явно остановлен моей деятельностью, и должен запускаться снова, даже если он остановлен из-за какой-либо проблемы (флаг START_STICKY
). Этот сервис должен постоянно что-то делать (каждые пару секунд), используя TimerTask
. Я получил следующий код.
public class SomeService extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
TimerTask timerTask;
final Handler handler = new Handler();
Timer timer = new Timer();
@Override
public void onCreate() {
// code to execute when the service is first created
super.onCreate();
}
@Override
public void onDestroy() {
// code to execute when the service is shutting down
super.onDestroy();
}
@Override
public void onStart(Intent intent, int startid) {
// code to execute when the service is starting up
timerTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
//KEEP RUNNING SOME ERRANDS HERE
}
}
});
}
};
timer.scheduleAtFixedRate(timerTask, 100L, 1700L);
}
}
Можно ли как-нибудь оптимизировать это для непрерывной работы?