public class TimeUtils {
/倒计时时长 单位:秒/
public static int COUNT = 20*60;
/当前做/
private static int CURR_COUNT = 0;
/预计结束的时间/
private static long TIME_END = 0;
/计时器/
private static Timer countdownTimer;
/显示倒计时的textView/
private static TextView txtCountdown;
/**
-
开始倒计时
-
@param isFirst 标识是否是第一次进入
-
@param second 倒计时时长 单位:秒
-
@param textView 显示倒计时的textView
*/
public static void startCountdown(boolean isFirst,int second,TextView textView) {
COUNT = second;
long data = System.c
urrentTimeMillis();
long time = TIME_END;
//第一次进入时,重新赋值
if(isFirst){
CURR_COUNT = COUNT;
time = data + COUNT * 1000;
TIME_END = time;
}else {
int the_difference = ((int) (time - data)) / 1000;
CURR_COUNT = the_difference;
}
//开始倒计时
txtCountdown = textView;
if (countdownTimer == null) {
countdownTimer = new Timer();
countdownTimer.schedule(new TimerTask() {
@Override
public void run() {
Message msg = new Message();
msg.what = CURR_COUNT–;
handler.sendMessage(msg);
}
}, 0, 1000);
//第二个参数delay:"0"的意思是:无延迟
//第三个参数period:"1000"的意思是:每隔多长时间调用一次(单位毫秒)
}
}
/**
- 结束倒计时
*/
public static void stopCountdown() {
//发送消息,结束倒计时
Message message = new Message();
message.what = 0;
handler.sendMessage(message);
}
private static Handler handler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what <= 0) {
if (countdownTimer != null) {
countdownTimer.cancel();
countdownTimer = null;
}
txtCountdown.setText(“剩余:00:00:00”);
txtCountdown.setEnabled(true);
} else {
//倒计时效果展示
String txtTime = formatSecondTime(msg.what);
txtCountdown.setText(txtTime);
txtCountdown.setEnabled(false);
}
super.handleMessage(msg);
}
};
/**
-
时间格式化方法
-
@param second 秒数
-
@return
*/
private static String formatSecondTime(int second) {
int hour = 0;
int minute = 0;
if (second > 60) {
minute = second / 60; //取整
second = second % 60; //取余
}
if (minute > 60) {
hour = minute / 60;
minute = minute % 60;
}
String strtime = “剩余:”+hour+“小时”+minute+“分”+second+“秒”;
return strtime;
}
}
TimeUtils调用方式:
//在启动倒计时的按钮上
最后
小编这些年深知大多数初中级Android工程师,想要提升自己,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此我收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取
年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**
[外链图片转存中…(img-9dcyXJ5K-1718986420136)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料⬅专栏获取