我正在编写一个Android应用程序,我需要定期(每30秒)从服务器获取数据。我在考虑使用AlarmManager
来安排这些任务,但是我需要能够传递一个更新视图的回调函数。由于Intent
无法封装回调,我决定找到另一个解决方案,即“工作线程”。这里的问题是对服务器的请求是在AsyncTask
中执行的,其中onPreExecute
和onPostExecute
必须从Ui线程运行,所以我真的不能这样做。< / p>
我很感激任何建议,在这种情况下最好的方法。
答案 0 :(得分:2)
使用Handler
。
Handler mHandler;
public void useHandler() {
mHandler = new Handler();
mHandler.postDelayed(mRunnable, 30000);
}
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
Log.e("Handlers", "Call asynctask");
/** Call your AsyncTask here **/
mHandler.postDelayed(mRunnable, 30000);
}
};