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

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

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

瀏覽:171日期: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久久,三上悠亚国产精品一区二区三区
精品一区二区三区在线观看视频| 亚洲三级网站| 精品三级国产| 国产一区久久| 国产美女精品| 首页欧美精品中文字幕| 男人天堂欧美日韩| 精品一级视频| 九九精品调教| 日韩**一区毛片| 亚洲涩涩在线| 在线观看一区| 国产麻豆精品| 1024精品久久久久久久久| 日av在线不卡| 中文字幕一区二区三区四区久久| 欧美激情aⅴ一区二区三区| 国产欧美日韩综合一区在线播放| 四虎成人精品一区二区免费网站 | 伊人久久亚洲热| 国产精品社区| 麻豆传媒一区二区三区| 久久久久久免费视频| 日韩中文字幕区一区有砖一区 | 亚洲黄色影院| 久久久久久久久丰满| 中文欧美日韩| 麻豆91精品视频| 日本中文字幕一区二区视频| 久久影院午夜精品| 日本高清不卡一区二区三区视频 | 亚洲激情社区| 国产午夜久久av| 亚洲综合欧美| 精品中文在线| 五月天综合网站| 97精品一区| 国产成人精品一区二区三区免费| 国产精品天堂蜜av在线播放| 亚洲一区二区免费在线观看| 日本欧美不卡| 国产麻豆一区| 日本在线一区二区三区| 亚洲欧美日韩国产一区二区| 亚洲欧洲另类| 蜜桃精品视频| 久久国产精品亚洲77777| 美女国产精品久久久| 亚洲精品进入| 中文字幕日韩亚洲| 亚洲一级黄色| 国产a亚洲精品| 日韩精品亚洲专区| 欧美日韩水蜜桃| 亚洲黄色中文字幕| av综合电影网站| 日韩精品首页| 久久久久九九精品影院| 日本亚洲视频| 日韩欧美2区| 久久中文字幕av| 成人羞羞在线观看网站| 久久久久国产| 久久久久亚洲| 国产成人精品一区二区三区视频| 久久精品一本| 嫩草伊人久久精品少妇av杨幂| 久久影院资源站| 亚洲毛片在线免费| 亚洲网站视频| 中文字幕一区二区三区四区久久| 亚洲精品免费观看| 香蕉成人av| 欧美香蕉视频| 国产一区二区亚洲| 视频小说一区二区| 国产一区二区三区四区五区 | 成人精品久久| 精品三级国产| 激情五月综合网| 丝袜美腿成人在线| 精品国产乱码久久久| 欧美日韩精品免费观看视欧美高清免费大片 | 伊人久久视频| 免费久久99精品国产自在现线| 欧美日韩夜夜| 欧美一区二区三区高清视频| 亚洲三级在线| 欧美中文日韩| 亚洲伦乱视频| 亚洲aa在线| 激情综合网五月| 日韩在线欧美| 久久99影视| 亚洲精品无吗| 欧美精品一区二区三区精品| 老司机免费视频一区二区三区| 最新亚洲一区| 国产99亚洲| 久久精品在线| 日韩av自拍| 国产乱人伦丫前精品视频| 亚洲一区欧美激情| 在线精品亚洲| 欧美特黄一区| 亚洲欧洲高清| 老司机免费视频一区二区| 欧美精品一二| 婷婷综合激情| 久久国产免费| 国产99久久| aa亚洲婷婷| 国产色综合网| 久久中文字幕av一区二区不卡| 久久蜜桃精品| 免费毛片在线不卡| 极品av在线| 日韩一区二区三区免费| 视频一区日韩精品| 亚洲精选av| 亚洲免费一区三区| 在线综合欧美| 亚洲欧美日韩国产一区二区| 国模 一区 二区 三区| 偷拍欧美精品| 一区在线免费观看| 久久伊人亚洲| 欧美日韩1区2区3区| 日韩精品亚洲一区二区三区免费| 视频一区二区三区入口| 麻豆91在线播放| 亚洲播播91| 激情偷拍久久| 日韩国产一区二区三区| 日本а中文在线天堂| 色网在线免费观看| 99视频一区| 亚洲一级大片| 在线手机中文字幕| 美女福利一区二区三区| 日韩欧美自拍| 免费视频最近日韩| 综合一区av| 手机精品视频在线观看| 日韩国产精品久久久| 国产91欧美| 99精品99| 精品视频久久| 精品国产免费人成网站| 午夜亚洲一区| 亚洲一区观看| 久久久久一区| 日本不卡一区二区三区| 国产h片在线观看| 日韩欧美精品一区二区综合视频| 韩国久久久久久| 亚洲精品免费观看| 亚洲午夜电影| 一区二区三区四区日韩| 久久精品三级| 亚洲精品观看| 福利一区和二区| 欧美一级二级视频| 老鸭窝一区二区久久精品| 日韩精品麻豆| 亚洲精选久久| 欧美91精品| 美女在线视频一区| 国产精品av一区二区| 福利一区在线| 国产三级一区| 蜜臀av一区二区在线免费观看| 激情视频网站在线播放色| 免费久久精品视频| 1024精品一区二区三区| 国产精品亲子伦av一区二区三区 | 国产高清一区| 九九九精品视频| 亚洲精品免费观看| 丝袜诱惑制服诱惑色一区在线观看| 日韩88av| 日韩av不卡在线观看| 亚洲三级视频| 麻豆久久精品| 久久久精品五月天| 91亚洲成人| 国产精品久久久久av蜜臀| 久久国产66| 毛片在线网站| 国产成人精品三级高清久久91| 欧美偷窥清纯综合图区| 日韩高清电影一区| 亚洲精品精选| 久久国产精品毛片| 亚洲另类av| 午夜电影一区| 色婷婷久久久| 成人台湾亚洲精品一区二区| 国产亚洲字幕| 久久精品国产99国产|