Android Handler實現(xiàn)閃屏頁倒計時代碼
我就廢話不多說了,大家還是直接看代碼吧~
package com.zjx.todayinfomation; import android.os.Handler; public class CustomCountDownTimer implements Runnable{ // 1.實時去回調(diào) 這個時候是什么時間 倒計時到幾點 觀察者設(shè)計模式 // 2.支持傳入總時間 動態(tài)傳入 // 3.每過一秒 總秒數(shù) -1 // 4.總時間倒計時為0時候 回調(diào)完成狀態(tài) private int time; // 總時間 private int countDowntime; // 倒計時事件 private IcountDownHandler countDownHandler; // 回調(diào)接口 private final Handler handler; // handler private boolean isRunning; // 是否允許 /** * @param time 傳入的總時間 * @param countDownHandler 接口回調(diào) */ public CustomCountDownTimer(int time,IcountDownHandler countDownHandler){ handler = new Handler(); this.time = time; this.countDowntime = time; // 倒計時時間第一次 就是總時間 this.countDownHandler = countDownHandler; } @Override public void run() { if (isRunning){ // 如果開啟了 if (countDownHandler != null){ // 并且回調(diào)接口不為空 回調(diào)當前秒數(shù) countDownHandler.onTicker(countDowntime); // countDowntime 第一次進來就是總時間 比如5 } // 如果當前秒數(shù)為0 回調(diào)完成 if (countDowntime == 0){ cancel(); if (countDownHandler != null){ countDownHandler.onFinish(); } }else{ // 如果當前秒數(shù)部位0 每次 減少1秒 并且 疫苗后 重新執(zhí)行這個run方法 countDowntime = time--; // 5 4 3 2 1 類似 handler.postDelayed(this,1000); } } } /** * 開啟run方法 */ public void start(){ isRunning = true; handler.post(this); // 調(diào)用run方法 } /** * 跳出循環(huán) 終止run方法 */ public void cancel(){ isRunning = false; handler.removeCallbacks(this); } /** * 觀察者 回調(diào)接口 */ public interface IcountDownHandler{ void onTicker(int time);// 回調(diào)事件 倒計時 void onFinish(); // 回調(diào)完成 } }
補充知識:android 列表每一個item都加上倒計時
使用recyclerview的問題:當前顯示的view如果滑到看不見再滑回來就會重新倒計時
解決方法是換用listview 使用viewholder復(fù)用原理 把倒計時寫在第一次加載時候 這樣就不會出現(xiàn)上述問題
以上這篇Android Handler實現(xiàn)閃屏頁倒計時代碼就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android那兩個你碰不到但是很重要的類之ViewRootImpl
這兩個類就是ActivityThread和ViewRootImpl,之所以說碰不到是因為我們無法通過正常的方式引用這兩個類或者其類的對象,本文就嘗試從幾個我們經(jīng)常接觸的方面先談?wù)刅iewRootImpl,感興趣的可以參考閱讀下2023-05-05Android APK使用Debug簽名重新打包 Eclipse更改默認Debug簽名
這篇文章主要介紹了Android APK使用Debug簽名重新打包 Eclipse更改默認Debug簽名等內(nèi)容,需要的朋友可以參考下2015-04-04Android Rsa數(shù)據(jù)加解密的介紹與使用示例
RSA是第一個既能用于數(shù)據(jù)加密也能用于數(shù)字簽名的算法。它易于理解和操作,也很流行。想起自己曾經(jīng)使用過的Rsa非對稱加密算法,閑下來總結(jié)一下。方便自己和大家以后使用的時候參考借鑒。下面來一起看看吧。2016-09-09Android 應(yīng)用適配 Android 7.0 權(quán)限要求詳解
今天小編就為大家分享一篇Android 應(yīng)用適配 Android 7.0 權(quán)限要求詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Android 中讀取SD卡文件時拋出NullPointerException錯誤解決辦法
這篇文章主要介紹了Android 中讀取SD卡文件時拋出NullPointerException錯誤解決辦法的相關(guān)資料,需要的朋友可以參考下2017-05-05