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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 正版ST-link/V2 J-LINK JTAG/SWD引脚定义和注意事项

    正版ST-link/V2 J-LINK JTAG/SWD引脚定义和注意事项重点来了:当板子上没有JTAG接口时,我们可以使用SWD接线方式,以前使用盗版的ST-link时,只需要四根线(SWIO,SWCLK,3V3,GND)就可以轻松实现目标板连接,简单小巧,可谓是嵌入式攻城狮的最爱!但是换成正版的ST-link/V2,还是四线(SWIO,SWCLK,3V3,GND)连接的话,就会出现Notargetconnected的问题别着急,慢慢来…

    2022年6月10日
    39
  • pip安装scrapy失败_scrapy框架运行

    pip安装scrapy失败_scrapy框架运行错误如图所示,running setup.py install for Twisted…..errorTwisted依赖库安装报错,重新下载手动安装一下下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs注意:看下安装的python是什么版本,我安装的python 3.9.0,就下载cp39,64位的下载安装的版本不对,就会报:Twisted-20.3.0-cp38-cp38-win_amd64.whl is not a support…

    2022年8月19日
    7
  • oracle 拼接字符串的两种方式「建议收藏」

    oracle 拼接字符串的两种方式「建议收藏」 方式一:使用管道符||进行拼接方式二:使用concat()函数区别:  方式一可以拼接多个字符串;方式二只能将2个字符串拼接到一起。写在最后  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!! 相关推荐:个人主页  …

    2022年9月19日
    0
  • SSM项目问题总结

    SSM项目问题总结1.导入一个新项目报错Theimportjavax.servlet.http.HttpServletRequestcannotberesolvedhttps://blog.csdn.net/nokia_lc/article/details/522047662.org.springframework.beans.factory.BeanDefinitionStoreException:…

    2022年6月21日
    24
  • zookeeper入门教程_dubbo和Zookeeper详解

    zookeeper入门教程_dubbo和Zookeeper详解zookeeperwatcher架构zookeeper 配置中心分布式ID分布式锁集群搭建数据一致性协议:zab协议Zookeeper Leader选举Observer角色及其配置watcher架构客户端首先将Watcher注册到服务器,同时将Watch对象保存到客户端的Watch管理器中。当Zookeeper服务器监听到的数据发生变化时,服务器会通知客户端,接着客户端的Watch管理器会触发相关的Watcher来回调响应处理逻辑,从而完成整体的数据发布/订阅流程。javaAPIJava

    2022年8月8日
    1
  • busybox 安装mysql_安装busybox「建议收藏」

    busybox 安装mysql_安装busybox「建议收藏」安装busybox按以下步骤即可:1.root手机2.查看手机支持的cpu架构:cat/system/build.prop|grepabi我手机查出来的结果如下所示:ro.product.cpu.abi=armeabi-v7aro.product.cpu.abi2=armeabi3.下载适合你手机的Busybox,可以直接下载binary文件,地址如下:https://busybox.ne…

    2022年7月25日
    10

发表回复

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

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