2014-09-30 20 views

回答

5

您可以使用TimerTask来周期性地调用您的assyncTask。

的TimerTask:http://developer.android.com/reference/java/util/TimerTask.html

这里有云和示例:

TimerTask timerTask = new TimerTask() { 
     @Override 
     public void run() { 
      //CALL YOUR ASSYNC TASK HERE. 
      new foo(someDetails).execute(); 
     } 
    }; 

    Timer timer = new Timer(); 

    //DELAY: the time to the first execution 
    //PERIODICAL_TIME: the time between each execution of your task. 
    timer.schedule(timerTask, DELAY,PERIODICAL_TIME); 
+0

我编辑了我的答案。我希望它可以帮助你:) – 2014-09-30 10:35:46

1

您使用AlarmManager,并创建一个服务将运行的AsyncTask

使用报警管理器重复您的服务。

2

使用Handler

final Handler handler = new Handler(); 
Runnable refresh = new Runnable() { 
     @Override 
     public void run() { 
      try { 
       //your staff 
       new foo(someDetails).execute(); 
      } catch (NullPointerException e) { 
       Log.e(TAG, "" + e); 
      } 
      handler.postDelayed(this, 60 * 1000); 
     } 
    }; 
handler.postDelayed(refresh, 60 * 1000); 
1

Note: The Alarm Manager is intended for cases where you want to have your application code run at a specific time, even if your application is not currently running. For normal timing operations (ticks, timeouts, etc) it is easier and much more efficient to use Handler.

http://developer.android.com/reference/android/app/AlarmManager.html

由于Android的文档称TimerTask的,而不是你应该使用AlarmManager或处理程序。