【移動應用開發技術】RecyclerView實現列表倒計時_第1頁
【移動應用開發技術】RecyclerView實現列表倒計時_第2頁
【移動應用開發技術】RecyclerView實現列表倒計時_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

【移動應用開發技術】RecyclerView實現列表倒計時

最近在做一個項目,需要用到列表倒計時功能,搗鼓半天終于弄了出來,在安卓中實現這個效果需要用到Countdowntimer,通過這個類的使用,不僅可以實現倒計時的效果,還可以完美解決在實現倒計時過程中的兩個bug。1.內存問題

2.由于recyclerview的item復用導致不同條目的時間錯亂

首先看下實現的最終效果如何顯示列表我相信大家都會,這里我只附上和倒計時功能實現的adapter類。其中cancelAllTimer()這個方法解決了內存的問題,通過這行代碼,將item的hashcode作為key設入SparseArray中,這樣在cancelAllTimer方法中可以一個一個取出來進行倒計時取消操作。接著通過下面這行代碼新建一個CountDownTimer類分析它的源碼從中可以很清楚的看出,設置了兩個值,第一個是倒計時結束時間,第二個是刷新時間的間隔時間。

然后通過start方法進行啟動,接著看下start方法中進行的處理源碼中,當倒計時截止時間小于等0時也就是倒計時結束時,調用了onFinish方法,若時間還未結束,則通過handler的異步消息機制,將消息進行發出,通過一整個流程,最終方法會走到handler的handleMessage方法中,如果有不熟悉這個異步流程的伙伴,可以去看我以前寫的一篇異步消息機制的文章android異步消息機制,源碼層面徹底解析。好了,接下來就來看看handler的handleMessage方法。相信這段源碼還是很通熟易懂,首先計算出剩余時間,如果剩余時間小于刷新時間,就發送一條延時消息直到時間結束,如果剩余時間大于刷新時間就調用onTick(millisLeft)方法,這個方法在我們創建CountDownTimer

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論