我有以下类型的应用程序
- 从提要中拉低数据价格
- 处理它们并将它们放入我的自定义适配器中
- 在ListView中显示价格(所以我称之为setAdapter)
- 现在的最后阶段是无限地重复这个过程,可能间隔5秒
因此,我有AsyncTask来处理数据下载,并在onPostExecute上更新适配器,它就会显示出来。
但是,我如何以5秒为间隔循环整个活动呢?
我是否需要创建一个线程来调用这个异步任务,并在线程中使用一个睡眠时间为5秒的循环?
谢谢!!
您可以使用TimerTask
类及其scheduleAtFixedRate()
方法下载数据,然后使用视图的post()
方法更新界面,从而完全避免AsyncTask。还有更多的方法可以做到这一点,我应该知道,因为你想每5秒下载一次
问题可能是当数据下载失败或挂起超过5秒时该怎么办。
myTimer = new Timer();
myTimer.schedule(new TimerTask() {
@Override
public void run() {
TimerMethod();
}
}, 0, 10000);
}
private void TimerMethod()
{
getActivity().runOnUiThread(Timer_Tick);
}
private Runnable Timer_Tick = new Runnable() {
public void run() {
new AsyncTask().execute();
}
};