2013-06-10 2 views
3

У меня есть две AsyncTasks, выполняющие сетевые операции. Я хочу называть их периодически (например, через один мин.). Как мне это сделать? Я не думаю, что могу это сделать в потоке пользовательского интерфейса. Нужно ли создавать новый поток? Возможно ли реализовать это без AlarmManager/Service?Как периодически вызывать asyncTasks

В основном я хочу периодически вызывать эти два утверждения через один мин.

new UploadAsyncTask().execute(); 
new DownloadAsyncTask().execute(); 

Спасибо

ответ

14

Просто используйте таймер.

final Handler handler = new Handler(); 
Timer timer = new Timer(); 
TimerTask task = new TimerTask() {  
    @Override 
    public void run() { 
     handler.post(new Runnable() { 
      public void run() { 
      new UploadAsyncTask().execute(); 
      new DownloadAsyncTask().execute(); 
      } 
     }); 
     } 
}; 
timer.schedule(task, 0, 1000); //it executes this every 1000ms 
+0

На какой нитке это работает? –

+2

на другой поток, чем нить пользовательского интерфейса. В основном док сказал: «Каждый экземпляр Handler связан с одним потоком и очереди сообщений потока» _. Вы можете найти больше объяснений [здесь] (http://developer.android.com/reference/android/os/Handler.html) –

+0

Привет, спасибо! это сработало! –

Смежные вопросы