Android 时间倒计时
Android时间倒计时在网上一搜就一堆,而且也经常用到。备份一下,以便下次直接使用
1、首先我创建一个接口,为什么要创建一个接口呢?因为我是建立了一个类继承CountDownTimer。这样做的意义就是不用每次
需要用到的倒计时的时候不需要在Activity里面创建直接调用就可以了。
public interface OnCountDownTimeListener {
void getCountDownTime(int time);
void timeOver();
}
2、倒计时的实现类如下:
public class CountDownThread extends CountDownTimer {
private final static String TAG = CountDownThread.class.getSimpleName();
/**
* @param millisInFuture The number of millis in the future from the call
* to {@link #start()} until the countdown is done and {@link #onFinish()}
* is called.
* @param countDownInterval The interval along the way to receive
* {@link #onTick(long)} callbacks.
*/
private OnCountDownTimeListener listener;
Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1:
// Log.i(TAG, "还剩"+msg.arg1+"秒");
listener.getCountDownTime(msg.arg1);
break;
case 2:
// Log.i(TAG, "倒计时结束");
listener.timeOver();
break;
}
}
};
public CountDownThread(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
public void setOnCountDownTimeListener(OnCountDownTimeListener listener){
this.listener = listener;
}
@Override
public void onTick(long millisUntilFinished) {
// Log.i(TAG, "还剩"+millisUntilFinished/1000+"秒");
Message msg = new Message();
msg.what = 1;
msg.arg1 = (int)millisUntilFinished/1000;
mHandler.sendMessage(msg);
}
@Override
public void onFinish() {
Message msg = new Message();
msg.what = 2;
mHandler.sendMessage(msg);
}
}
3、在Activity的调用,其中使用了butterknife
public class CountDownActivity extends Activity implements OnCountDownTimeListener{
private final static String TAG = CountDownActivity.class.getSimpleName();
private CountDownThread countDownThread;
@BindView(R.id.count_down)
TextView textView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_count_down);
ButterKnife.bind(this);
startCountDownTime(5);
}
//开始时间倒计时
private void startCountDownTime(int time) {
if (countDownThread != null) {
countDownThread.cancel();
}
countDownThread = new CountDownThread(time * 1000, 1000);
countDownThread.setOnCountDownTimeListener(this);
countDownThread.start();
}
@Override
public void getCountDownTime(int time) {
textView.setText(String.valueOf(time));
}
@Override
public void timeOver() {
textView.setText(String.valueOf("倒计时结束"));
}
}
4、相应的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:id="@+id/count_down"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello world"/>
</LinearLayout>
Android 时间倒计时相关推荐
- android中倒计时控件CountDownTimer分析
android中倒计时控件CountDownTimer分析1 示例代码 new CountDownTimer(10000, 1000) {public void onTick(long millisU ...
- Android时间与服务器同步方案
转自: https://blog.csdn.net/qinci/article/details/70666631这个的吧?转发请注明来源吧?Android时间与服务器同步方法_飛舞的青春的博客-CSD ...
- android中倒计时动画,Android实现倒计时效果
本文实例为大家分享了Android实现倒计时效果的具体代码,供大家参考,具体内容如下 一个倒计时的效果 先看效果图: 直接上代码: 这里是关于倒计时 -天时分秒-的逻辑判断 /** * 倒计时计算 * ...
- Android答题计时的代码,Android答题倒计时
Android答题倒计时:讲一下我在做一个答题APP时涉及到倒计时时遇到的一个问题吧.碎片+CountDownTimer组成的一个答题,其中遇到的一个问题就是.这个题的倒计时在你手动滑动下一个题的时候 ...
- Android验证码倒计时实现方式总结
Android验证码倒计时实现方式总结 几乎所有的APP里面都有验证码倒计时按钮,自己在项目中也尝试,简单总结为以下三种: 1.使用线程和Handler的方式,定时刷新倒计时数字,这种方式容易导致内存 ...
- android闹钟倒计时_如何在Android上使用闹钟,计时器和秒表
android闹钟倒计时 Your Android device's built-in Clock app can serve as an alarm clock, a kitchen timer, ...
- Android 定时器+倒计时 仿淘宝秒杀
目录结构 效果图: imageViewHolder public class imageViewHolder extends RecyclerView.ViewHolder {public Image ...
- Android 日期倒计时
实现抢票或者秒杀之类的倒计时效果,可更改倒计时格式,需求:1天5小时8分钟22秒这种,完美解决手机息屏计时不准的问题(用wekLock) 本文章借鉴于Android定时器-做天数时间倒计时 wakeL ...
- android倒计时功能,android实现倒计时功能(开始、暂停、0秒结束)
本文实例为大家分享了android实现倒计时功能的具体代码,供大家参考,具体内容如下 [思路]:通过 timer 执行周期延时的任务,handler 中将计时信息更新,并在计时结束时结束 timer ...
最新文章
- 打印modal框中在线生成的二维码
- redis -memcahe-mongo资料-windows定时重启计划
- php5安装mysql拓展_PHP7安装mysql的扩展让老版本PHP程序继续服役
- 十八般武艺玩转GaussDB(DWS)性能调优(三):好味道表定义
- 【opencv】实时人脸+眼睛+微笑检测
- 官宣!华为主导首个软件定义摄像机国际标准诞生
- Android Q功能
- 凸优化第九章无约束优化 9.3 梯度下降方法
- 区块链 PBFT 哪个节点 谁负责打包区块
- 华盛顿大学计算机专业gpa,华盛顿大学计算机专业基本信息全盘点 学习来这里就对了...
- Android Studio中Intent的一些相关知识
- 万豪 数据泄露 sql注入_如何防止数据库泄漏和注入
- 【转载】C/C++ 笔试面试(1)—— sizeof
- 文件系统层次结构标准和Linux上下载源代码配置编译安装
- bash shell实现并发多进程操作
- 风险预测模型评价第二弹:NRI的R语言计算
- “联想笔记本电脑的电池显示0%,充不进电” 解决方案
- 远光九天云平台 自主创新助力科技自强
- 如何高效的搜索github上面的资源
- 【AD620/OP07】高压电流采样电路设计方案