Android倒计时功能的实现

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

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

下面是官方给的一个小例子:

new CountdownTimer(300001000) {       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(300001000);           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有显示时间延迟                }         }      }  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/pfszw.html