我正在研究Android中的一个自行设计的编码问题,我正在构建一个简单的计时器应用程序,该应用程序允许用户倒计时一定的时间。
我有一个活动显示计时器MainActivity
(也可以从该活动中启动计时器),还有一个活动允许用户选择倒计时时间并提交(SelectActivity
)。
我使用的ViewModel
包含定制的CountDownTimer
类。用户可以随时返回SelectActivity
并提交新时间。在我的代码中,我将计时器显式设置为null
,如下所示(不是最好的代码,但我希望这个想法会出现)。我之后添加了model.timer = null
。
问题:如果用户提交新时间,MainActivity
现在将显示2个计数器快速连续倒数(剩余时间显示在一个视图中)。
我的假设是,通过将计时器设置为null可以摆脱旧的计时器。这个假设错了吗?我要完全解决这个问题吗?
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
// Check which request we're responding to
if (requestCode == 1) {
// Make sure the request was successful
model.timer = null
model.timer = MyTimer(data?.getLongExtra("Message",11) ?: 0, 10, true).apply {
setListener(model.timerListener)
}
model.timerStatus.value = StateTimer.INITIALIZED
}
}
答案 0 :(得分:0)
能否请您分享一下如何将数据传递给视图? 另外,看来您还有另一个用于此任务的变量
model.timerStatus.value = StateTimer.INITIALIZED
我猜这另一行会影响您显示信息的方式,因为您要再次初始化同一实例。