簡體   English   中英

Android:最佳做法是使用AsyncTask定期加載Internet數據,並在加載失敗時重試

[英]Android: Best practice to use AsyncTask to load internet data periodly and retry it when fail to load

我認為加載數據並在一段時間后刷新它很常見,因為數據可能會更改。 我的問題是有關如何定期加載它,以及在加載失敗時如何重試加載操作。

我試圖使用AsyncTask來完成這項工作,但是我的代碼很丑陋,我想知道是否有一些優雅的解決方案來解決這個問題。

我有一些擔憂:

  1. 第一次加載失敗時,請快速重新加載。 對於迅速 ,我的意思是我不想等待下一個刷新時間點再次加載它,因為數據不是第一次加載,所以我需要盡快加載它。
  2. 成功加載后,啟動定期刷新操作。 如果加載操作失敗,則無需重試,因為之前已加載數據,所以我可以等待下一次刷新。
  3. 停止重試操作(如果存在)或在活動消失時定期刷新
  4. 當活動變得可見時,繼續重試操作或定期刷新,重試操作仍應迅速發生,但是定期刷新,我可能要檢查上一次刷新時間並將其與當前時間進行比較,以確定是否應開始定期刷新現在或以后。

聽起來很復雜,對此要求有很好的代碼示例嗎?

簡單按照以下步驟

  1. 通過scheduleAtFixedRate(TimerTask task, long delay, long period)聲明計時器任務並使用Timer進行scheduleAtFixedRate(TimerTask task, long delay, long period)

    私有類MyTask擴展了TimerTask {public void run(){//通過執行調用異步任務}}

  2. 聲明處理程序

  3. 當異步任務完成獲取圖像或失敗時..在處理程序對象的實例上發送空消息

  4. 在處理程序中取消異步任務

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM