Hi folks, I would like to know how to restart a countdown timer after the time is up.e.g. the timer should run down from 48h and restart after. I new to android development and searched a lot through the internet but nothing really helped.thanks for ur help:)my code in activity so far:
private val handler = Handler()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.cash_riddles)
handler.post(object : Runnable {
override fun run() {
handler.postDelayed(this, 1000)
updateTime()
}
})
}
fun updateTime() {
val currentDate = Calendar.getInstance()
val eventDate = Calendar.getInstance()
eventDate[Calendar.YEAR] = 2020
eventDate[Calendar.MONTH] = 4 // 0-11 so 1 less
eventDate[Calendar.DAY_OF_MONTH] = 4
// i want to call the method after timer expired with
//eventDate[Calendar.DAY_OF_MONTH]+2 (48h)
eventDate[Calendar.HOUR] = 2
eventDate[Calendar.MINUTE] = 5
eventDate[Calendar.SECOND] = 20
eventDate.timeZone = TimeZone.getTimeZone("GMT")
val diff = eventDate.timeInMillis - currentDate.timeInMillis
val days = diff / (24 * 60 * 60 * 1000)
val hours = diff / (1000 * 60 * 60) % 24
val minutes = diff / (1000 * 60) % 60
val seconds = (diff / 1000) % 60
verbleibende_zeit.text = "Restliche Zeit: ${days}d ${hours}h ${minutes}m ${seconds}s"
}
private fun endEvent(currentdate: Calendar, eventdate: Calendar) {
if (currentdate.time >= eventdate.time) {
// maybe somebody know what to type here to solve my problem
}
}
好吧,我不知道这是哪种语言,但我猜测是kotlin,当我学习android时,有一个简单的方法来运行倒计时器,我不认为它是推荐使用线程延迟的倒计时.发现的链接为更简单的倒计时在android。https:/developer.android.comreferencekotlinandroidosCountDownTimer。
首先,我不知道你的代码中哪里有倒计时器?如果你想添加倒计时器,你应该把你添加倒计时器的代码贴出来,因为你的问题是关于倒计时器的,假设你已经成功添加了倒计时器,如果你想让它在时间结束后重新启动,你可以在它的onFinish()方法中再次调用它。
如果你想让它在延迟后开始,你可以在onFinish()方法中添加一个像这样的处理程序。
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
// call your timer again here to restart it
}
}, 1000);
关于HAndler或CountdownTimer的更多信息,你可以去查看官方文档,它一定会帮助你的