【发布时间】:2021-12-26 10:52:53
【问题描述】:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val navController = Navigation.findNavController(requireActivity(), R.id.fragment)
binding.bottomNavigationView.setupWithNavController(navController)
object : CountDownTimer(100000,100){
@SuppressLint("SetTextI18n")
override fun onTick(millisUntilFinished: Long) {
batteryText.text = "Akü Şarj Durumu: %${millisUntilFinished/1000}"
}
override fun onFinish() {
batteryText.text = "Akü Şarj Durumu: %0"
}
}.start()
}
我有一个简单的计时器,但这个计时器有以下问题;
1-) 无论我做什么,Timer 中的 millisInFuture 和 countDownInterval 值都不能每 10 秒从 100 开始计数。
2-) 如果我在计时器用完之前尝试切换到另一个页面,应用程序就会崩溃。当计时器结束时,切换到另一个页面时没有问题。为什么?
3-) 我希望计时器继续计数,即使我切换到另一个页面。当我回到页面时,我不希望它再次从 100 开始。如果应用程序在使用期间减少,我希望用户在用户使用计时器进入页面时看到该数字。
【问题讨论】:
-
当您从一个屏幕移动到另一个屏幕时,您需要取消计时器。在这样做之前,请记住计时器的位置,并在您从下一个屏幕返回时再次启动计时器。
int seconds = (int) (millisUntilFinished / 1000) % 60
标签: android kotlin timer fragment