gpt4 book ai didi

android - CountDownTimer 没有取消

转载 作者:行者123 更新时间:2023-11-30 04:59:02 27 4
gpt4 key购买 nike

这个问题的其他实例都没有解决我的问题。我有一个出现在事务序列末尾的 fragment 。它用于在其中包含的 CountDownTimer 倒计时时关闭应用程序:

class TerminalFragment : Fragment() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}

override fun onStart() {
super.onStart()
startOverButton.setOnClickListener {

returnToStart()
}

initUi()

startCountDown()

}

override fun onStop() {
super.onStop()

AppLog.i(TAG, "onStop()")

stopCountdown()

}
}

private fun startCountDown() {

terminalCountdown = object : CountDownTimer(5000, 1000) {
override fun onFinish() {

AppLog.i(TAG, "Terminal countdown finished")

(context as MainActivity).finish()
}

override fun onTick(millisUntilFinished: Long) {

}
}
.start()
}

private fun stopCountdown() {
AppLog.i(TAG, "stopCountDown() - Terminal countdown stopped")

terminalCountdown?.cancel()

terminalCountdown = null

}

private fun returnToStart() {

AppLog.i(TAG, "returnToStart()")

stopCountdown()

(context as MainActivity).restartFlow()
}

stopCountDown() 每当 fragment 被导航离开时都会被调用,但它有时会以某种方式存活下来并从另一个 fragment 关闭应用程序。使用日志,我还发现有时似乎有 2 个倒计时实例。我如何确保这个倒计时永远不会在这个 fragment 之外激活?

最佳答案

作为Shrey Greg mentioned in a comment ,每次我想重新启动它时,我都在创建一个新的 CountdownTimer 实例。这丢失了对先前实例的引用,因此无法取消。

关于android - CountDownTimer 没有取消,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58565290/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com