日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Android自定義短信倒計時view流程分析

瀏覽:174日期:2022-09-25 10:55:16

倒計時實現有三種方式 而這個自定義view是通過handler實現的。為了保證activity銷毀的同時倒計時線程依然進行同時重新創建銷毀又不會導致內存泄漏,我使用了handler的弱引用將handler和runnable設置成靜態,同時通過一系列變量來銷毀關閉線程保存狀態,話不多說先看效果圖:

Android自定義短信倒計時view流程分析

下面看源碼:

import android.content.Context;import android.os.Handler;import android.os.Message;import android.util.AttributeSet;import androidx.annotation.NonNull;import com.juexing.payassistant.activity.login.RegisterActivity;import java.lang.ref.WeakReference;//待優化為了保存倒計時狀態線程延遲一秒關閉所有的子線程//qq也是如此public class CountDownTimeView extends androidx.appcompat.widget.AppCompatButton { private static volatile int i=60; //用來保存倒計時時間的中轉變量 private static volatile int j=0; private static TimeHandler handler;//每次啟動活動判斷i是否為0來讀取倒計時時間 public static int getI() { return i; } //RegisterActivity是調用該控件的活動需要在oncreate中將對象傳入public void setActivity(RegisterActivity activity){ handler=new TimeHandler(activity);} public static void setI(int i) { CountDownTimeView.i = i; } //防止多次重復點擊發送設置的變量 private static volatile boolean send=true; private class TimeHandler extends Handler { WeakReference<RegisterActivity> timeActivityWeakReference; public TimeHandler(RegisterActivity registerActivity){ this.timeActivityWeakReference = new WeakReference<>(registerActivity); } @Override public void handleMessage(@NonNull Message msg) { super.handleMessage(msg); RegisterActivity activity=timeActivityWeakReference.get();//獲取活動 switch (msg.what){case 1: if(i>0){ activity.getmessage. setText(i+'s'); }else { } break;case 2: activity.getmessage. setText('重新獲取'); break;case 3: i=j-1; j=0; send=false; handler.postDelayed(runnable,1000); } } }; public CountDownTimeView(Context context) { super(context); } public CountDownTimeView(Context context, AttributeSet attrs) { super(context, attrs); }//網絡請求短信成功后調用 public void onStart(CountDownTimeView view){ if(send){ if(i==0){ i=60; } handler.postDelayed(runnable,1000); view.setText(i+'s'); send=false; }else { //為了顯示不突兀自動減去一秒 view.setText(i-1+'s'); j=i; //將i設置為0是將所有線程運行完畢關閉釋放內存 i=0; handler.removeCallbacksAndMessages(null); //因為線程調度隨機性所以要延遲一秒發送保證子線程關閉 Message message=Message.obtain(); message.what=3; handler.sendMessageDelayed(message,1000);// i=j; } } //設置成靜態保證唯一性 public static Runnable runnable=new Runnable() { @Override public void run() { if(i>0){i--;Message message=new Message();message.what=1;handler.handleMessage(message);handler.postDelayed(runnable,1000); }else {if(j!=0){}else { send=true; Message message=new Message(); message.what=2; handler.handleMessage(message);} } } };}

在activity的oncreate中需要將activity實例對象傳入,并進行判斷:

getmessage.setActivity(this); if(getmessage.getI()<60){ if(getmessage.getI()>0){getmessage.onStart(getmessage); }else {getmessage.setText('重新獲取'); } } }

```getmessage是自定義view的實例對象。

如要源碼可以到我的git上獲取:

[https://github.com/heybixby/CountDownTimerView```](https://github.com/heybixby/CountDownTimerView)

總結

到此這篇關于Android自定義短信倒計時view流程分析的文章就介紹到這了,更多相關android 短信倒計時view內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩91| 国产96在线亚洲| 国产高清不卡| 首页国产欧美久久| 国产中文字幕一区二区三区| 天堂成人免费av电影一区| 久久精品一区| 国产精品亲子伦av一区二区三区| 日韩一区二区免费看| 亚洲一区二区三区高清不卡| 欧美亚洲色图校园春色| 日日夜夜免费精品| 欧美日中文字幕| 国产精品美女久久久久久不卡| 婷婷综合成人| 久久人人88| 亚洲一区二区成人| 三级在线观看一区二区| 亚洲精品免费观看| 日韩激情中文字幕| 精品福利久久久| 蜜桃久久av一区| 国产精品地址| 国产三级一区| 亚洲久久视频| 麻豆精品视频在线观看| 麻豆视频一区二区| 欧洲av不卡| 性欧美69xoxoxoxo| 久久不见久久见中文字幕免费| 日韩av有码| 国产亚洲在线| 亚洲精品电影| 亚洲欧洲免费| 狠狠久久伊人中文字幕| 久久国产电影| 卡一卡二国产精品| 国产精品美女在线观看直播| 免费人成精品欧美精品| 久久男人av资源站| 亚洲免费影视| 亚洲青青久久| 欧美亚洲三区| 视频一区二区三区中文字幕| 免费欧美一区| 丝袜诱惑一区二区| 成人片免费看| 久久九九精品| 亚洲欧美日韩高清在线| 亚洲精品在线a| av免费不卡国产观看| 快she精品国产999| 国产视频一区二| 尤物tv在线精品| 亚洲精品第一| 国产一区二区三区不卡视频网站| 欧美日韩四区| 国产伦精品一区二区三区视频| 98精品视频| 尤物在线精品| 国产aⅴ精品一区二区四区| 蜜桃成人av| 在线观看一区| 日韩av中文字幕一区二区三区| 亚洲视频播放| 一区二区国产在线观看| 国产精品亚洲产品| 午夜久久福利| 婷婷综合五月| 婷婷六月综合| 香蕉久久一区| 91成人在线| 麻豆精品蜜桃| 久久亚洲精品伦理| 首页国产欧美久久| 免费一级欧美在线观看视频 | 欧美 日韩 国产一区二区在线视频| 久久九九精品| 亚州国产精品| 久久精品国产999大香线蕉 | 亚洲午夜在线| 欧美日韩免费观看视频| 久久久久久久久丰满| 9999国产精品| 成人日韩在线| 精品中文字幕一区二区三区| 国产福利亚洲| 视频一区二区国产| 日韩在线欧美| 国产女人18毛片水真多18精品| 国产美女视频一区二区| 国产日韩欧美三级| 欧美精选视频一区二区| 日韩精品一区第一页| 欧美日韩精品免费观看视欧美高清免费大片 | 国产极品一区| 久久不卡国产精品一区二区| 国产成人a视频高清在线观看| 久久精品国产精品亚洲毛片| 国产福利电影在线播放| 91精品一区二区三区综合在线爱| 国产精品99一区二区| 蜜芽一区二区三区| 国产精品玖玖玖在线资源| 国产在线观看91一区二区三区| 高清在线一区| 国产精品7m凸凹视频分类| 欧美激情三区| 国产精品chinese| 久久一区视频| 亚洲一区二区小说| 岛国av在线网站| 国产欧美精品久久| 一二三区精品| 婷婷精品进入| 欧洲在线一区| 国产精品久久久久久模特 | 国产精品v一区二区三区| 国产日韩电影| 亚洲精品高潮| 91精品麻豆| 一区在线免费| 麻豆中文一区二区| 午夜久久免费观看| 97精品中文字幕| 综合在线一区| 日韩大片在线| 精品久久电影| 国产精品一区二区精品| 蜜臀av在线播放一区二区三区| 黑人精品一区| 国产一区精品福利| 日韩高清欧美| 色爱av综合网| 日韩毛片视频| 国产精品99精品一区二区三区∴ | 偷拍亚洲精品| 成人精品亚洲| 久久在线91| 青青久久av| 在线视频精品| 亚洲精品97| 99视频精品视频高清免费| 日韩中文字幕| 亚洲精品美女91| 国产精品多人| 欧美另类综合| 石原莉奈在线亚洲三区| 精品欠久久久中文字幕加勒比| 精品三级久久| 国产va在线视频| 日韩av免费| 在线一区免费| 国产99精品| 日韩精品视频网| 一区在线免费观看| 午夜久久av| 国产精品13p| 99riav1国产精品视频| 日本午夜精品视频在线观看| 免费成人网www| 成人av动漫在线观看| 91亚洲国产高清| 亚洲成av在线| 亚洲夜间福利| 久热精品在线| 久久国产免费看| 精品国产中文字幕第一页| 桃色一区二区| 99久久99久久精品国产片果冰| 99久久激情| 日日摸夜夜添夜夜添国产精品| 国产日韩欧美中文在线| 激情综合五月| 亚洲精品电影| 亚洲免费一区三区| 国产成人精品三级高清久久91| 伊人精品一区| 成人国产精品久久| 日韩高清一区二区| 亚洲一级大片| 丝袜美腿成人在线| 国产一区二区三区黄网站| 欧美一区激情| 亚洲乱码视频| 日韩综合小视频| 亚洲日产av中文字幕| 99国产精品自拍| 影院欧美亚洲| 在线视频精品| 亚洲日本网址| 都市激情国产精品| 精品72久久久久中文字幕| 麻豆极品一区二区三区| 亚洲精品在线国产| 丝袜诱惑制服诱惑色一区在线观看 | 久久只有精品| 欧美视频久久| 国产精品极品| 久久中文字幕一区二区三区|