zoukankan      html  css  js  c++  java
  • Android中文API(143) —— CountDownTimer

    前言

      本章内容android.os.CountDownTime章节,版本为Android 4.0 r1,翻译来自:"liliang1222",再次感谢他 !期待你一起参与翻译Android的相关资料,联系我over140@gmail.com。

    声明

      欢迎转载,但请保留文章原始出处:) 

        博客园:http://www.cnblogs.com/

        Android中文翻译组:http://androidbox.sinaapp.com/

     

    CountDownTimer

    译者署名: liliang1222

    版本:Android 4.0 r1

     

    结构

    继承关系

    public abstract class CountDownTimer extends Object

            

    java.lang.Object

    android.os.CountDownTimer

     

    类概述

    定时执行在一段时候后停止的倒计时,在倒计时执行过程中会在固定间隔时间得到通知(译者:触发onTick方法),下面的例子显示在一个文本框中显示一个30s倒计时:

     new CountdownTimer(30000, 1000) {

         public void onTick(long millisUntilFinished) {

             mTextField.setText("seconds remaining: " + millisUntilFinished / 1000);

         }

         public void onFinish() {

             mTextField.setText("done!");

         }

     }.start(); 

    onTick的调用是同步的,保证这次调用不会在之前调用完成前发生。这里的同步机制主要是用来:onTick的实现需要很多时间执行比倒计时间隔更重要的事情。

     

    构造函数

             public CountDownTimer (long millisInFuture, long countDownInterval)

    参数

                       millisInFuture  从开始调用start()到倒计时完成并onFinish()方法被调用的毫秒数。(译者注:倒计时时间,单位毫秒)

                       countDownInterval  接收onTick(long)回调的间隔时间。(译者注:单位毫秒)

     

    公共方法

    public final void cancel ()

             取消倒计时(译者:取消后,再次启动会重新开始倒计时)        

                      

    public abstract void onFinish ()

             倒计时完成时被调用    

    public abstract void onTick (long millisUntilFinished)

             固定间隔被调用

    参数

                                millisUntilFinished   倒计时剩余时间。

    public synchronized final CountDownTimer start ()

             启动倒计时

     

    补充

    文章精选

    Android 定时器

    android倒计时功能的实现(CountDownTimer

    示例代码

             Java

    package com.test.countdowntimer;

     

    import android.app.Activity;

    import android.os.Bundle;

    import android.os.CountDownTimer;

    import android.util.Log;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.Button;

    import android.widget.TextView;

     

    import com.test.R;

     

    public class CountDownTimeActivity extends Activity implements OnClickListener {

     

        TextView mTextView;

        Button mButton1;

        Button mButton2;

       

        @Override

        protected void onCreate(Bundle savedInstanceState) {

           super.onCreate(savedInstanceState);

          

           setContentView(R.layout.countdown);

          

           mTextView = (TextView)findViewById(R.id.textView1);

           mButton1 = (Button)findViewById(R.id.button1);

           mButton2 = (Button)findViewById(R.id.button2);

           mButton1.setOnClickListener(this);

           mButton2.setOnClickListener(this);

        }

     

        CountDownTimer timer = new CountDownTimer(40000,1000) {

          

           @Override

           public void onTick(long millisUntilFinished) {

               mTextView.setText("seconds remaining: " + millisUntilFinished / 1000);

               try {

                  Thread.sleep(1200);

               } catch (InterruptedException e) {

                  e.printStackTrace();

               }

               Log.e("CountDown",millisUntilFinished+"");

           }

          

           @Override

           public void onFinish() {

               mTextView.setText("done");

           }

        };

       

        @Override

        public void onClick(View v) {

           switch(v.getId()){

           case R.id.button1:

               timer.start();

               break;

           case R.id.button2:

               timer.cancel();

               break;

           }

          

        }

    }

     

     

             XML

    <?xml version="1.0" encoding="utf-8"?>

    <LinearLayout

     xmlns:android="http://schemas.android.com/apk/res/android"

     android:orientation="vertical"

     android:layout_width="match_parent"

     android:layout_height="match_parent">

        <TextView android:text="TextView" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

        <Button android:text="开始" android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

        <Button android:text="取消" android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

       

    </LinearLayout>

     

    说明:

    CountDownTimer的间隔为1s,我们在onTIck方法里面休眠了1.2s,所以log出来发现打印间隔变成了2s,即中间一次onTick方法没有被执行(不会在之前一次调用完成前被调用)。

  • 相关阅读:
    特征选择常用算法综述
    干货:结合Scikit-learn介绍几种常用的特征选择方法
    机器学习中,有哪些特征选择的工程方法?
    牛逼的博客地址
    Discover Feature Engineering, How to Engineer Features and How to Get Good at It
    机器学习中的Bias(偏差),Error(误差),和Variance(方差)有什么区别和联系?
    机器学习中使用「正则化来防止过拟合」到底是一个什么原理?为什么正则化项就可以防止过拟合?
    Libsvm和Liblinear的使用经验谈
    Python 由list转为dictionary
    使用 numpy.random.choice随机采样
  • 原文地址:https://www.cnblogs.com/over140/p/2294220.html
Copyright © 2011-2022 走看看