Android 短信sms倒计时
发布日期:2021-06-29 11:46:29
浏览次数:3
分类:技术文章
本文共 1983 字,大约阅读时间需要 6 分钟。
将sms倒计时封装在一个类中:
public class SmsTimer { private Timer timer; private int totalTime=60; //总共时长 private int currentTime; //当前倒计时 private Handler handler=new Handler(Looper.getMainLooper()); public SmsTimer(TimerInterface timerInterface){ this.timerInterface=timerInterface; } public SmsTimer(int totalTime,TimerInterface timerInterface){ this.totalTime=totalTime; this.timerInterface=timerInterface; } public void start(){ if(timer==null){ timer=new Timer(); currentTime=totalTime; timer.schedule(new TimerTask() { @Override public void run() { handler.post(runnable); } },1000,1000); } } public boolean isStart(){ return timer!=null; } public void cancel(){ if(timer!=null){ timer.cancel(); timer=null; } handler.removeCallbacksAndMessages(null); } private TimerInterface timerInterface; public interface TimerInterface{ void timerFinish(); void timerPlaying(int time); } private Runnable runnable=new Runnable() { @Override public void run() { currentTime--; //如果倒计时完成,结束timer,调用自定义接口方法 if(currentTime<=0){ if(timerInterface!=null)timerInterface.timerFinish(); cancel(); }else{ if(timerInterface!=null)timerInterface.timerPlaying(currentTime); } } };}
使用方法如下:
1.创建SmsTimer对象
SmsTimer smsTimer=new SmsTimer(new SmsTimer.TimerInterface() { @Override public void timerFinish() { //倒计时完成时的回调 } @Override public void timerPlaying(int time) { //倒计时进行时的回调 }});
2.启动计时器
if(!smsTimer.isStart()){ smsTimer.start(); //开启短信倒计时 //...做自己的事}
3.在Activity或Fragment的onDestroy中结束计时器,防止内存泄露
@Overrideprotected void onDestroy() { super.onDestroy(); smsTimer.cancel();}
转载地址:https://blog.csdn.net/zz51233273/article/details/117948592 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月09日 02时19分15秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Centos 离线安装mysql5.7.32
2019-04-29
面试技巧总结
2019-04-29
centos7下安装Python3.6和pip
2019-04-29
oracle创建表空间自增长和创建用户
2019-04-29
配置Linux主机SSH无密码访问
2019-04-29
centos7升级内核到5.10.7-1
2019-04-29
centos7源码安装、部署Zabbix4监控平台
2019-04-29
ORM基础概念
2019-04-29
反射以及Attribute在ORM中的应用
2019-04-29
ERP中反射的两个实例
2019-04-29
什么是反射&反射的8个类的用法
2019-04-29
Spring IOC流程源码分析
2019-04-29
SpringIOC、DI、AOP、MVC总结、时序图
2019-04-29
spring循环依赖及解决方法
2019-04-29
Nginx反向代理负载均衡时,验证码不正确
2019-04-29
@EnableDiscoveryClient
2019-04-29
查看docker的端口映射情况
2019-04-29
Sentinel入门
2019-04-29
Sentinel的blockHandler与fallback的区别
2019-04-29
幂等性
2019-04-29