我有以下类型的应用程序
- 从提要中拉低数据价格
- 处理它们并将它们放入我的自定义适配器中
- 在 ListView 中显示价格(所以我调用 setAdapter)。
- 现在最后阶段是以 5 秒的间隔无限重复此操作。
所以我有 AsyncTask 来处理数据下载和 onPostExecute 我更新适配器并显示。
但是我怎样才能以 5 秒的间隔循环整个活动呢?
我是否需要创建一个调用此异步任务的线程并在线程中使用 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();
}
};