Potrzebuję wykonać kod w regularnych odstępach czasu (połączyć się z serwerem i pobierać dane z bazy danych MySQL co minutę). W tym celu mam Sync Klasa:Android: wykonywanie kodu w regularnych odstępach czasu
public class Sync {
static private Handler handler = new Handler();
Runnable task;
public Sync(Runnable task, long time) {
this.task = task;
handler.removeCallbacks(task);
handler.postDelayed(task, time);
}
}
iw moim Aktywny mam:
public void onCreate(Bundle savedInstanceState) {
...
Sync sync = new Sync(call,60*1000);
...
}
final private Runnable call = new Runnable() {
public void run() {
//This is where my sync code will be, but for testing purposes I only have a Log statement
Log.v("test","this will run every minute");
}
};
Próbowałem to z krótszego okresu czasu do testowania, ale działa tylko raz. Kiedy Loguje wiadomość po raz pierwszy, jest także ostatnią. Czy ktoś widzi, co tu robię? Dzięki!
scheduleWithFixedDelay z ScheduledThreadPoolExecutor jest jeszcze jedna opcja. –