2012-12-31 101 views
0

有一個列表視圖與一些細節,我有數據從服務器列表視圖充氣。所以在創建活動時,我調用了一個API來獲取數據並將其充值到列表視圖一次。在列表視圖中還有分頁,所以在滾動到最後一個項目時,它會再次調用下一頁的api,並在列表的末尾添加下一頁的數據。這工作正常。 但我想要的是某種間隔的列表視圖數據的自動刷新。意味着列表視圖有一種更新的數據。如何構建我的活動以獲得我想要的解決方案。在特定時間間隔更新列表視圖

+0

http://www.vogella.com/articles/AndroidServices/article.html –

回答

1

試試這個:

Handler mHandler = new Handler(); 
Thread downloadThread; 

boolean isRunning = true; 

在的onCreate():

downloadThread = new Thread(new Runnable() { 
      @Override 
      public void run() { 
       // TODO Auto-generated method stub 
       while (isRunning) { 
        try { 
         Thread.sleep(10000); // run at every 10 seconds 
         mHandler.post(new Runnable() { 

          @Override 
          public void run() { 
           // TODO Auto-generated method stub 
           // Write your code here to update the UI. 
           updateListData(); 
          } 
         }); 
        } catch (Exception e) { 
         // TODO: handle exception 
        } 
       } 
      } 
     }); 

     downloadThread.start(); 

感謝。

+0

這將更新列表在一定的時間間隔,並在滾動到最後一項我正在更新列表數據..如何處理兩者不會發生在同一時間.. – Dory

+0

@chitra你可以處理這個'isRunning'標誌。當你更新滾動的列表數據時,你可以設置'isRunning = false'來停止這個線程的執行。一旦你完成了,你可以再次設置'isRunning = true'來再次啓動線程執行。 –

+0

@chitra明白我的意思嗎? –

0

在你活動的onCreate()創建Hanlder,然後選擇從什麼post()postAtTime()postDelayed()適合你,叫你的刷新方法。

+0

將它不會發生衝突的數據,作爲滾動到最後一個項目在列表視圖中我在特定的時間間隔內撥打服務器電話,我也需要撥打電話。如何處理這兩個呼叫。 – Dory

0

使用下列更新列表視圖

new Handler().postDelayed(new Runnable() { 

     public void run() { 
      // TODO Auto-generated method stub 
      callFunction(); 
     } 
    }, 3000);