文档章节

Android使用CountDownTimer倒计时

东西南瓜西葫芦
 东西南瓜西葫芦
发布于 2015/06/22 09:01
字数 317
阅读 163
收藏 1

直接代码

1、布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

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

</LinearLayout>

2、调用

package com.best.daojishi;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends Activity {
	CountdownUtil c;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		TextView textView = (TextView) findViewById(R.id.textView1);

		c = new CountdownUtil(60000000, textView);
		c.countdown();
	}
	@Override
	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		c.stopThread();
	}
}

3、倒计时

package com.best.daojishi;

import java.text.SimpleDateFormat;
import java.util.TimeZone;
import android.os.CountDownTimer;
import android.widget.TextView;
/**
 * 倒计时
 * */
public class CountdownUtil {
	private long time;
	TextView counetdownView;
	CountdownThread thread;
	SimpleDateFormat formatter;
	String hms;
	/**
	 * @time:时间差(指定的一段时间长),时间戳
	 * @counetdownView:TextView显示倒计时
	 * */
	public CountdownUtil(long time, TextView counetdownView) {
		this.time = time;
		this.counetdownView = counetdownView;
	}
	/**
	 * 倒计时
	 * */
	public void countdown(){
		formatter = new SimpleDateFormat("HH:mm:ss");// 初始化Formatter的转换格式。
		formatter.setTimeZone(TimeZone.getTimeZone("GMT +8:00"));//设置时区(北京),如果你不设置这个,你会发现你的时间总会多出来8个小时

		thread = new CountdownThread(time, 1000);// 构造CountDownTimer对象
		thread.start();
	}
	class CountdownThread extends CountDownTimer {
		public CountdownThread(long millisInFuture, long countDownInterval) {
			super(millisInFuture, countDownInterval);
			// TODO Auto-generated constructor stub
		}
		@Override
		public void onTick(long millisUntilFinished) {
			hms = formatter.format(millisUntilFinished);//转化成  "00:00:00"的格式
			counetdownView.setText(hms);
		}

		@Override
		public void onFinish() {
			// TODO Auto-generated method stub
			//倒计时结束时触发
			counetdownView.setText("00:00:00");
		}
	}
	/**
	 * 终止线程
	 * */
	public void stopThread(){
		thread.cancel();
	}
}


© 著作权归作者所有

共有 人打赏支持
东西南瓜西葫芦
粉丝 1
博文 23
码字总数 7490
作品 0
临沂
程序员
私信 提问
Chronometer和CountDownTimer计时器

Android小知识10则(上) Android小知识10则(下) Android用5种方式实现自定义计时器, 哪种才是你的菜? github传送门 目录 前言 Chronometer的使用 CountDownTimer的使用 最后 前言 mTimer.set...

Sorrower丶
08/14
0
0
Android 倒计时工具CountDownTimer的使用

一、用法详解 在Android开发中,有时需要使用倒计时功能,在Android系统中提供了一个倒计时的抽象类来辅助倒计时行为。 这个类有点缺陷,就是不能暂停后再次接着继续使用,为此,需要自定义一...

IamOkay
2014/11/23
0
0
CountDownTimer倒计时器的使用

以前好多倒计时的需求都需要自己去写,今天发现android 原来自带了倒计时的类CountDownTimer,和适合用于发送短信 ,等待验证码的情况 代码展示了在一个TextView进行60S的倒计时功能 public...

红豆与绿豆
2015/11/12
0
0
android倒计时功能的实现(CountDownTimer)

android倒计时功能的实现(CountDownTimer) 分类: android小例子2011-11-06 23:182550人阅读评论(4)收藏举报 在逛论坛的时候,看到一个网友提问,说到了CountDownTimer这个类,从名字上面大...

冯京宝
2012/06/14
0
0
聊聊 CountDownTimer 使用过程中的注意事项

Android 实现倒计时的方式有多种,Handler 延时发送 Message,Timer 和 TimerTask 配合使用,使用 CountDownTimer 类等。相比而言,经过系统封装的 CountDownTimer 算是使用起来最为方便的方...

亦枫
2017/09/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

闲话高并发的那些神话,看京东架构师如何把它拉下神坛

高并发也算是这几年的热门词汇了,尤其在互联网圈,开口不聊个高并发问题,都不好意思出门。高并发有那么邪乎吗?动不动就千万并发、亿级流量,听上去的确挺吓人。但仔细想想,这么大的并发与...

James-
5分钟前
0
0
Emacs 系列:让我们拥抱 Emacs 和 org 模式

导读 我必须承认,在使用了几十年的 vim 后, 我被 Emacs 吸引了。长期以来,我一直对如何组织安排事情感到沮丧。我也有用过 GTD 和 ZTD 之类的方法,但是像邮件或是大型文件这样的事务真的很...

问题终结者
6分钟前
0
0
解析Node.js通过axios实现网络请求

本次给大家分享一篇node.js通过axios实现网络请求的方法,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 1、使用Npm 下载axios n...

前端攻城老湿
19分钟前
1
0
深入浅出之React-redux中connect的装饰器用法@connect

这篇文章主要介绍了react-redux中connect的装饰器用法@connect详解,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下。如有不足之处,欢迎批评指正。 通常我们需要一...

前端攻城小牛
20分钟前
1
0
详解css BEM书写规范

BEM是基于组件的web开发方法。其思想是将用户界面分隔为独立的块,从而使开发复杂的UI界面变得更简单和快,且不需要粘贴复制便可复用现有代码。BEM由Block、Element、Modifier组成。选择器里...

前端小攻略
35分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部