如何无限循环AsyncTask



我有以下类型的应用程序

  • 从提要中拉低数据价格
  • 处理它们并将它们放入我的自定义适配器中
  • 在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();
             }
         };

最新更新