【Android】分享一個(倒)計時控件,避免各種坑

安卓開發(fā)經(jīng)常需要用到計時:
啟動頁倒計時,廣告頁倒計時,短信驗證碼倒計時,商品倒計時等等;
目前用到的方法有:
1.Timer 類計時任務(wù)
2.Handler 計時
3.CountDownTimer 倒計時類
4.Chronometer 控件

以上方式各有各的優(yōu)缺點
最常見的可能會導致內(nèi)存泄漏;

現(xiàn)在基于CountDownTimer 封裝一個TextView 可以簡單方便實現(xiàn) 計時、倒計時功能

優(yōu)點:
1.自動處理生命周期,不會發(fā)生內(nèi)存泄漏
2.繼承TextView,直接布局使用,樣式設(shè)置按照TextView設(shè)置即可
3.設(shè)置點擊事件開關(guān),可以實現(xiàn)倒計時期間點擊無效(短信驗證碼)
4.設(shè)置序列化操作開關(guān),關(guān)閉頁面、甚至殺掉app再進倒計時依然正確(短信驗證碼)
5.可倒計時,可正向計時
6.鏈式調(diào)用,方便快捷

GitHub地址:點這里
控件就一個類,復(fù)制出來使用

覺得好用歡迎給個star支持一下

示例:

mCountDownTextView.setNormalText("獲取驗證碼")
                .setCountDownText("重新獲取(", ")")
                .setCloseKeepCountDown(true)//關(guān)閉頁面保持倒計時開關(guān)
                .setCountDownClickable(true)//倒計時期間點擊事件是否生效開關(guān)
                .setShowFormatTime(true)//是否格式化時間
                .setOnCountDownFinishListener(new CountDownTextView.OnCountDownFinishListener() {
                    @Override
                    public void onFinish() {
                        Toast.makeText(MainActivity.this, "倒計時完畢", Toast.LENGTH_SHORT).show();
                    }
                })
                .setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(MainActivity.this, "短信已發(fā)送", Toast.LENGTH_SHORT).show();
                        mCountDownTextView.startCountDown(60);
                    }
                });
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容