Android 倒计时

本文介绍了一种在Android应用中实现倒计时功能的方法。通过创建一个内部类继承CountDownTimer,并利用Utils工具类格式化剩余时间,最终将结果显示在TextView上。同时,提供了设置特定日期作为倒计时终点的例子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.在activity中  添加一个内部类

 class MyCount extends CountDownTimer{


public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);


}


@Override
public void onTick(long millisUntilFinished) {
textView3.setText("距出发时间还有:\n"
+ Utils.formatDuring(millisUntilFinished));
}


@Override
public void onFinish() {
//倒计时完成以后 执行的语句
textView3.setVisibility(View.GONE);

}
 
}

2.添加工具类Utils

package com.example.image_up;


import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


import android.app.ActivityManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.Environment;
import android.preference.PreferenceManager;


public class Utils {


/** 
*  
* @param 要转换的毫秒数 
* @return 该毫秒数转换为 * days * hours * minutes * seconds 后的格式 
* @author fy.zhang 
*/  
public static String formatDuring(long mss) {  
   long days = mss / (1000 * 60 * 60 * 24);  
   long hours = (mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);  
   long minutes = (mss % (1000 * 60 * 60)) / (1000 * 60);  
   long seconds = (mss % (1000 * 60)) / 1000;  
   return days + " 天 " + hours + " 时 " + minutes + " 分 "  
           + seconds + " 秒 ";  
}  
/** 
*  
* @param begin 时间段的开始 
* @param end   时间段的结束 
* @return  输入的两个Date类型数据之间的时间间格用* days * hours * minutes * seconds的格式展示 
* @author fy.zhang 
*/  
public static String formatDuring(Date begin, Date end) {  
   return formatDuring(end.getTime() - begin.getTime());  


}

3.使用



try {
String aa="2015-09-02 19:31:41";
SimpleDateFormat formatDate = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
Long time;
time = formatDate.parse(
aa).getTime()
- new Date().getTime();
if (time > 60000) {
mc = new MyCount(time, 1000);
mc.start();
}

} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值