代码融入
1、kotlin代码
//初始化
private val handler = object : Handler(Looper.getMainLooper()) {
override fun handleMessage(msg: Message) {
super.handleMessage(msg)
//自己的方法写好放入就好我写的是一个首页时间vip倒计时的方法
setTime(vipExpireTimes)
// 在handleMessage发送handle消息实现无限刷新
sendMessageDelayed(this.obtainMessage(), 1000) // 延迟一秒发送,1秒刷新一次
}
}
//调用方法
handler.sendMessage(handler.obtainMessage()) // 在这里开始 时间计时
//记得销毁
override fun onDestroy() {
super.onDestroy()
handler.removeCallbacksAndMessages(null)
}
//倒计时方法
private fun setTime(failureTime: String) {
@SuppressLint("SimpleDateFormat") val simpleDateFormat =
SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
try {
// Date nowTime = new Date(System.currentTimeMillis()); //获取当前时间的另一种
val nowTime = System.currentTimeMillis() //获取当前时间
val overTime =
simpleDateFormat.parse(failureTime) //利用SimpleDateFormat来把字符串日期转换为Date对象类型
val a = overTime.time - nowTime // 计算总的时间差(毫秒级别)
if (a > 0) { //如果大于零 说明时间有剩余
// 总时间(a)
// 总天数( day*(1000 * 60 * 60 * 24) )
// 总小时数( hour * (1000 * 60 * 60) )
// 总分钟数( minute * (1000 * 60) )
// 总时间 中有几天
val day = a / (1000 * 60 * 60 * 24)
// 总时间 去除天数后,还剩多少小时
val hour = (a - day * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)
// 总时间 去除天数与小时后,还剩多少分钟
val minute =
(a - day * (1000 * 60 * 60 * 24) - hour * (1000 * 60 * 60)) / (1000 * 60)
// 总时间 去除天数小时与分钟后,还剩多少秒
val second =
(a - day * (1000 * 60 * 60 * 24) - hour * (1000 * 60 * 60) - minute * (1000 * 60)) / 1000
//刷新ui显示
tv_new_context.text =
context?.getString(R.string.vip_try_out) + +hour + ":" + minute + ":" + second + ""
} else {
tv_new_context.visibility = ViewGroup.GONE
}
} catch (e: java.lang.Exception) {
e.printStackTrace()
}
}