欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android基于CountDownTimer实现倒计时功能

程序员文章站 2023-12-18 08:13:10
本文实例讲述了android编程基于countdowntimer实现倒计时功能的方法。分享给大家供大家参考,具体如下: 在逛论坛的时候,看到一个网友提问,说到了count...

本文实例讲述了android编程基于countdowntimer实现倒计时功能的方法。分享给大家供大家参考,具体如下:

在逛论坛的时候,看到一个网友提问,说到了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()方法就行了。

希望本文所述对大家android程序设计有所帮助。

上一篇:

下一篇: