我有一个的AsyncTask,我要重复的操作在后台定期,我的AsyncTask是这个例子:重复的的AsyncTask后台操作,定期的Android
new foo(someDetails).execute();
我怎么能做到这一点?
在此先感谢。
我有一个的AsyncTask,我要重复的操作在后台定期,我的AsyncTask是这个例子:重复的的AsyncTask后台操作,定期的Android
new foo(someDetails).execute();
我怎么能做到这一点?
在此先感谢。
您可以使用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);
您使用AlarmManager,并创建一个服务将运行的AsyncTask。
使用报警管理器重复您的服务。
使用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);
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或处理程序。
我编辑了我的答案。我希望它可以帮助你:) – 2014-09-30 10:35:46