Android Handler實(shí)現(xiàn)閃屏頁(yè)倒計(jì)時(shí)代碼
我就廢話不多說(shuō)了,大家還是直接看代碼吧~
package com.zjx.todayinfomation;
import android.os.Handler;
public class CustomCountDownTimer implements Runnable{
// 1.實(shí)時(shí)去回調(diào) 這個(gè)時(shí)候是什么時(shí)間 倒計(jì)時(shí)到幾點(diǎn) 觀察者設(shè)計(jì)模式
// 2.支持傳入總時(shí)間 動(dòng)態(tài)傳入
// 3.每過(guò)一秒 總秒數(shù) -1
// 4.總時(shí)間倒計(jì)時(shí)為0時(shí)候 回調(diào)完成狀態(tài)
private int time; // 總時(shí)間
private int countDowntime; // 倒計(jì)時(shí)事件
private IcountDownHandler countDownHandler; // 回調(diào)接口
private final Handler handler; // handler
private boolean isRunning; // 是否允許
/**
* @param time 傳入的總時(shí)間
* @param countDownHandler 接口回調(diào)
*/
public CustomCountDownTimer(int time,IcountDownHandler countDownHandler){
handler = new Handler();
this.time = time;
this.countDowntime = time; // 倒計(jì)時(shí)時(shí)間第一次 就是總時(shí)間
this.countDownHandler = countDownHandler;
}
@Override
public void run() {
if (isRunning){ // 如果開(kāi)啟了
if (countDownHandler != null){ // 并且回調(diào)接口不為空 回調(diào)當(dāng)前秒數(shù)
countDownHandler.onTicker(countDowntime); // countDowntime 第一次進(jìn)來(lái)就是總時(shí)間 比如5
}
// 如果當(dāng)前秒數(shù)為0 回調(diào)完成
if (countDowntime == 0){
cancel();
if (countDownHandler != null){
countDownHandler.onFinish();
}
}else{
// 如果當(dāng)前秒數(shù)部位0 每次 減少1秒 并且 疫苗后 重新執(zhí)行這個(gè)run方法
countDowntime = time--; // 5 4 3 2 1 類(lèi)似
handler.postDelayed(this,1000);
}
}
}
/**
* 開(kāi)啟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)事件 倒計(jì)時(shí)
void onFinish(); // 回調(diào)完成
}
}
補(bǔ)充知識(shí):android 列表每一個(gè)item都加上倒計(jì)時(shí)
使用recyclerview的問(wèn)題:當(dāng)前顯示的view如果滑到看不見(jiàn)再滑回來(lái)就會(huì)重新倒計(jì)時(shí)
解決方法是換用listview 使用viewholder復(fù)用原理 把倒計(jì)時(shí)寫(xiě)在第一次加載時(shí)候 這樣就不會(huì)出現(xiàn)上述問(wèn)題
以上這篇Android Handler實(shí)現(xiàn)閃屏頁(yè)倒計(jì)時(shí)代碼就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android高級(jí)組件ImageSwitcher圖像切換器使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android高級(jí)組件ImageSwitcher圖像切換器的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
在Android中訪問(wèn)WebService接口的方法
最近公司有個(gè)項(xiàng)目需要從Android平臺(tái)訪問(wèn)WebService接口,實(shí)現(xiàn)向發(fā)布的函數(shù)傳遞對(duì)象。在網(wǎng)上找了一些資料,發(fā)現(xiàn)使用ksoap2可以調(diào)用WebService傳遞對(duì)象。2013-05-05
Android AutoCompleteTextView控件使用實(shí)例
AutoCompleteTextView這個(gè)控件用于輸入框的自動(dòng)完成提示,非常適合搜索框等。它本質(zhì)上是個(gè)EditText,實(shí)際上它也是從EditText繼承的,使用起來(lái)也十分簡(jiǎn)單2014-04-04
Android開(kāi)發(fā)之PopupWindow實(shí)現(xiàn)彈窗效果
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)之PopupWindow實(shí)現(xiàn)彈窗效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09
利用Flutter實(shí)現(xiàn)背景圖片毛玻璃效果實(shí)例
Flutter沒(méi)有單獨(dú)的模糊處理容器,需要部件層層疊加實(shí)現(xiàn)模糊效果,下面這篇文章主要給大家介紹了關(guān)于利用Flutter實(shí)現(xiàn)背景圖片毛玻璃效果的相關(guān)資料,需要的朋友可以參考下2022-06-06
Android網(wǎng)絡(luò)訪問(wèn)之Retrofit使用教程
Retrofit?是一個(gè)?RESTful?的?HTTP?網(wǎng)絡(luò)請(qǐng)求框架的封裝,網(wǎng)絡(luò)請(qǐng)求的工作本質(zhì)上是?OkHttp?完成,而?Retrofit?僅負(fù)責(zé)?網(wǎng)絡(luò)請(qǐng)求接口的封裝2022-12-12
基于Android平臺(tái)實(shí)現(xiàn)拼圖小游戲
這篇文章主要為大家詳細(xì)介紹了基于Android平臺(tái)實(shí)現(xiàn)拼圖小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12

