android倒计时功能的实现(CountDownTimer)[通俗易懂]

android倒计时功能的实现(CountDownTimer)[通俗易懂]在逛论坛的时候,看到一个网友提问,说到了CountDownTimer这个类,从名字上面大家就可以看出来,记录下载时间。将后台线程的创建和Handler队列封装成一个方便的类调用。    查看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。         下面是官方给的一个小例子:ne

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

          在逛论坛的时候,看到一个网友提问,说到了CountDownTimer这个类,从名字上面大家就可以看出来,记录下载时间。将后台线程的创建和Handler队列封装成一个方便的类调用。

     查看了一下官方文档,这个类及其简单,只有四个方法,上面都涉及到了onTick,onFinsh、cancel和start。其中前面两个是抽象方法,所以要重写一下。
          下面是官方给的一个小例子:

 new CountdownTimer(30000, 1000) {
     public void onTick(long millisUntilFinished) {
         mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);
     }
     public void onFinish() {
         mTextField.setText("done!");
     }
  }.start();

       直接用的那位网友的代码,自己稍微改动了一下一个简单的小demo。

package cn.demo;

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.os.CountDownTimer;
import android.widget.TextView;
import android.widget.Toast;
public class NewActivity extends Activity {
	private MyCount mc;
	private TextView tv;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		tv = (TextView)findViewById(R.id.show);
		mc = new MyCount(30000, 1000);
		mc.start();
	}//end func

	/*定义一个倒计时的内部类*/
	class MyCount extends CountDownTimer {   
		public MyCount(long millisInFuture, long countDownInterval) {   
			super(millisInFuture, countDownInterval);   
		}   
		@Override   
		public void onFinish() {   
			tv.setText("finish");      
		}   
		@Override   
		public void onTick(long millisUntilFinished) {   
			tv.setText("请等待30秒(" + millisUntilFinished / 1000 + ")...");   
			Toast.makeText(NewActivity.this, millisUntilFinished / 1000 + "", Toast.LENGTH_LONG).show();//toast有显示时间延迟     
		}  
	}   
}

       主要是重写onTick和onFinsh这两个方法,onFinish()中的代码是计时器结束的时候要做的事情;onTick(Long m)中的代码是你倒计时开始时要做的事情,参数m是直到完成的时间,构造方法MyCount()中的两个参数中,前者是倒计的时间数,后者是倒计时onTick事件响应的间隔时间,都是以毫秒为单位。例如要倒计时30秒,每秒中间间隔时间是1秒,两个参数可以这样MyCount(30000,1000)。 将后台线程的创建和Handler队列封装成为了一个方便的类调用。

当你想取消的时候使用mc.cancel()方法就行了。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192255.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月16日 上午10:15
下一篇 2026年1月16日 上午10:43


相关推荐

  • 动态规划——0/1背包问题(全网最细+图文解析)「建议收藏」

    动态规划——0/1背包问题(全网最细+图文解析)「建议收藏」01背包你真的掌握了吗?进来带你10分钟秒杀

    2022年7月26日
    10
  • mysql 拼接字符_mysql将字符串和数字拼接

    mysql 拼接字符_mysql将字符串和数字拼接数据准备CREATETABLE`user`(`id`int(11)NOTNULLAUTO_INCREMENT,`account`varchar(100)DEFAULTNULL,`password`varchar(100)DEFAULTNULL,`type`tinyint(4)DEFAULTNULL,PRIMARYKEY(`id`),UNIQUEKEY`acc…

    2022年9月30日
    5
  • vue 中使用Odometer

    vue 中使用Odometertemplate div IOdometercla iOdometer value num format ddd dd div template script importIOdome vue odometer import odometer themes odometer theme default css exportdefau script

    2026年3月18日
    2
  • JS中的原型和原型链(图解)

    JS中的原型和原型链(图解)JS 中的原型和原型链讲原型的时候 我们应该先要记住以下几个要点 这几个要点是理解原型的关键 1 所有的引用类型 数组 函数 对象 可以自由扩展属性 除 null 以外 2 所有的引用类型都有一个 proto 属性 也叫隐式原型 它是一个普通的对象 3 所有的函数都有一个 prototype 属性 这也叫显式原型 它也是一个普通的对象

    2026年3月26日
    2
  • pycharm断点调试教程_pycharm怎么debug

    pycharm断点调试教程_pycharm怎么debug前言如果你不会用IDE开发工具的debug,你在调试代码的时候可能会用print输出去调试,那样效率比较低。我们可以用Pycharm的debug来调试,当然如果你用的Jetbranis的其他产品,操作方法也是一样的。Pycharm的Debug(1)开启debug的方式:右键debug项目 工具栏的甲壳虫(2)常用按钮图解debugger栏:stepover(单步调试)程序代码越过子函数,但子函数会执行,且不进入。 stepinto(进入)在单步执行时,遇到子函数就进入.

    2022年8月26日
    9
  • Linux查看和结束进程命令详解

    Linux查看和结束进程命令详解在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过kill、killall、pkill、xkill等进行。————————————

    2022年7月2日
    30

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号