实现倒计时想到了三个方案

1.countDownTimer

sdk较高版本有bug 计时不精准

2.timer 和timer task的方式

但是在timertask不可以直接更新页面,还是需要用handler去更新界面。

3.handler可以用 sendEmptyMessageDelayed可以实现倒计时

而且倒计时本身没有耗时操作也不要开子线程

Handler 实现

private static class MyHandler extends Handler {

WeakReference mWeakReference;

MyHandler(MyFragment fragment) {

mWeakReference = new WeakReference<>(fragment);

}

@Override

public void handleMessage(Message msg) {

final MyFragment fragment = mWeakReference.get();

if (fragment == null)

return;

switch (msg.what) {

case RESTART_COUNT_DOWN:

mHandler.removeCallbacksAndMessages(null);

fragment.countDownCount = 300;

sendEmptyMessage(START_COUNT_DOWN);

break;

case START_COUNT_DOWN:

if (fragment.countDownCount > 0) {

String time = fragment.converterToTime(fragment.countDownCount);

fragment.timeTv.setText(time);

sendEmptyMessageDelayed(START_COUNT_DOWN, 1000);

fragment.countDownCount--;

} else {

sendEmptyMessage(RESTART_COUNT_DOWN);

}

break;

}

}

}

//转换成 分钟:秒的形式 例如 05:00

private String converterToTime(int countDownCount) {

int minute = countDownCount / 60;

int second = countDownCount % 60;

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append(0);

stringBuilder.append(minute);

stringBuilder.append(":");

if (second < 10) {

stringBuilder.append(0);

}

stringBuilder.append(second);

return stringBuilder.toString();

}

fragment中调用

mHandler = new MyHandler(this);

移除所有信息

@Override

public void onDestroy() {

super.onDestroy();

if (mHandler != null) {

mHandler.removeCallbacksAndMessages(null);

}

}

android 倒计时handle,android -handler 实现倒计时相关推荐

  1. 【安卓基础】倒计时按钮封装(验证码倒计时按钮)

    验证码按钮在项目的使用频率应该是100%,现在大多数应用都会采用手机号码登陆,通常都会支持发送验证码登陆的功能. 我在项目中也遇到这样的功能,特别在忘记密码的界面,我注意到一点:当发送验证码之后,要6 ...

  2. android倒计时功能,android实现倒计时功能(开始、暂停、0秒结束)

    本文实例为大家分享了android实现倒计时功能的具体代码,供大家参考,具体内容如下 [思路]:通过 timer 执行周期延时的任务,handler 中将计时信息更新,并在计时结束时结束 timer ...

  3. android倒计时功能,Android 实现列表倒计时功能

    Android 实现列表倒计时功能 发布时间:2020-08-21 21:47:11 来源:脚本之家 阅读:147 作者:Choi晨 单个计时器,然后遍历数据 刷新条目: 两种实现方式:1.Handl ...

  4. android中倒计时动画,Android实现倒计时效果

    本文实例为大家分享了Android实现倒计时效果的具体代码,供大家参考,具体内容如下 一个倒计时的效果 先看效果图: 直接上代码: 这里是关于倒计时 -天时分秒-的逻辑判断 /** * 倒计时计算 * ...

  5. android自定义秒表,Android自定义Chronometer实现短信验证码秒表倒计时功能

    本文实例为大家分享了Chronometer实现倒计时功能,Android提供了实现按照秒计时的API,供大家参考,具体内容如下 一.自定义ChronometerView 继续自TextView 主要原 ...

  6. android studio倒计时代码,AndroidStudio项目制作倒计时模块

    前言 大家好,给大家带来AndroidStudio项目制作倒计时模块的概述,希望你们喜欢 项目难度 AndroidStudio项目制作倒计时模块的难度,不是很大,就是主要用了Timer和TimerTa ...

  7. android欢迎页圆形倒计时,android 欢迎页圆形进度条倒计时功能

    常见app欢迎页圆形进度条倒计时功能,可设置显示文字,进度条颜色,宽度,倒计时时间,内圆颜色.设置进度条类型  顺数进度条(0-100)还是倒数进度条(100-0): 先上效果图: 下面介绍实现逻辑: ...

  8. android 一分钟倒计时动画,Android View篇之启动页倒计时动画的实现

    Hello,小伙伴们大家好,今天介绍一个很简单的倒计时动画,仿酷狗音乐的启动页倒计时效果,也是大多数APP在用的一个动画,来看看效果图: 在这里插入图片描述 整体的思路就是用一个平滑的帧动画来画圆弧就 ...

  9. android实现首页倒计时,Android倒计时 Android仿京东倒计时 android电商app源码倒计时源码...

    一个简单的计时器 提供了一些方法 设置margin public void setLinearLayoutMargin(int left, int top, int right, int bottom ...

最新文章

  1. 自己整合优化的一个Android框架
  2. CiscoOSPF的选路原理
  3. arm中断保护和恢复_浅谈ARM处理器的七种异常处理
  4. 人口增长(信息学奥赛一本通-T1070)
  5. 我的swagger上面怎么没有models_浅析特斯拉Model S的采样板
  6. 谷歌浏览器的 vue插件工具
  7. 【转载】linux进程控制-exec系列 exec系统调用
  8. 华硕和超微服务器主板稳定性,华硕、超微、泰安三款双路服务器主板横测
  9. JAVA架构师进阶之路
  10. 随机画五十个圆python_随的解释|随的意思|汉典“随”字的基本解释
  11. qml 文本框获取焦点
  12. GEE基础-大影像下载
  13. 打印zigtag矩阵
  14. CSP报错运行错误?
  15. 【Java】在Eclipse中,很多代码的背景变成黄色、绿色或红色(已解决)
  16. python - 模块解析
  17. 2022年废纸价格预测
  18. [Unity][游戏实现][UGUI][AnimatorAnimation]Graveyard Keeper守墓人UI实现
  19. 自动控制原理笔记(5)——线性系统的根轨迹法
  20. 深入理解机器学习——类别不平衡学习(Imbalanced Learning):基础知识

热门文章

  1. spring boot之security
  2. CentOS6 安装Sendmail + Dovecot + Squirrelmail
  3. windows查看进程
  4. es6继承 vs js原生继承(es5)
  5. display:inline-block;在各浏览器下的问题和终极兼容办法
  6. 西湖区政府门户网站项目签约西部动力We7网站群系统
  7. Java字符字符串类
  8. error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.
  9. 原生node写一个静态资源服务器
  10. Thinking in Java Reading Note(5.初始化与清理)