Попробуйте использовать Handler, как здесь, вы можете использовать Handler как Thread.
вот пример
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
public class MyService extends Service{
private Handler handler;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
handler = new Handler();
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
handler.post(updateStatus);
}
@Override
public void onDestroy() {
super.onDestroy();
handler.removeCallbacks(updateStatus);
handler = null;
}
@Override
public boolean onUnbind(Intent intent) {
handler.removeCallbacks(updateStatus);
handler = null;
return super.onUnbind(intent);
}
private Runnable updateStatus = new Runnable() {
@Override
public void run() {
// do something here
handler.postDelayed(updateStatus, 1000);
}
};
}
здесь обработчик может быть инициализирован в метод oncreate теперь после этого, когдаПосле вызова метода onStart объект updateStatus будет вызываться через handler.post (), который запустит метод run этого объекта Runnable.
Теперь в этом случае он сразу вызовет run () и выполнит инструкциютолько для повторения этого вызова задачи внутри этого метода в определенное время задержки, например, здесь 1000 миллисекунд, поэтому после завершения всего выполнения он будет снова вызываться через 1 секунду, и повторение этой задачи будет продолжаться до тех пор, пока вы не сможете удалить работающий объект из обработчикатак что в основном это был вызов в onDestroy ()