繁体   English   中英

关闭并重新打开应用程序后,CountDownTimer重新启动

[英]CountDownTimer getting restarted after closing and reopening the app

我试图向用户显示一个CountDownTimer ,当用户按下“ START”按钮时,该计数器立即开始减少,但是如果我关闭活动并重新打开它,则CountDownTimer会重置并重新开始。

我使用此链接来学习如何设置CountDownTimer

这是我的编码方式:

new CountDownTimer(ms, 1000) {

            public void onTick(long millisUntilFinished) {
                String hms = String.format("%02d:%02d:%02d", TimeUnit.MILLISECONDS.toHours(millisUntilFinished),
                        TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished) % TimeUnit.HOURS.toMinutes(1),
                        TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) % TimeUnit.MINUTES.toSeconds(1));
                holder.availableFor.setText(hms);
            }

            public void onFinish() {
                holder.linearLayout.setVisibility(View.GONE);
                holder.firebaseDatabase.child(itemID).setValue(null);
                holder.geoFireReference.child(itemID).setValue(null);
            }
        }.start();

请让我知道即使用户关闭应用程序也如何保持计时器运行。

据我了解,您正在使用onClick方法创建此计时器。 尝试创建一些全局变量

CountDownTimer timer

之后,像您一样在onclick中创建它。

并在暂停状态下:

if (timer != null) {
timer.cancel

}

您必须使用服务类, 这里的链接可能会对您有所帮助。

您需要将计时器数据存储在某个全局范围内,以便一旦设置计时器就不会随活动生命周期而改变。

最佳实践建议,使用@ shahid17june回答的服务

如果您不想使用它,或者也可以使用setup变量将counttimerdata存储在应用程序类(全局数据)中,并进行适当的更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM