我正在设计一个应用程序(ABC),在该应用程序中,用户有一个特定的时间在3小时内完成任务。 向用户显示倒数计时器。但是,只要在应用程序之间切换活动(应用程序仍在后台运行)倒计时器重新启动,它就可以正常运行。并显示时间与几毫秒的差异。我想做的是时间不应该刷新。它应该继续它的倒计时。
这是我一直在使用的代码。
private void mytimer()
{
final int duration=3600000; //1 hours
new CountDownTimer(duration, 1000)
{
public void onTick(long millisUntilFinished)
{
long secondsInMilli = 1000;
long minutesInMilli = secondsInMilli * 60;
long hoursInMilli = minutesInMilli * 60;
long elapsedHours = millisUntilFinished / hoursInMilli;
millisUntilFinished = millisUntilFinished % hoursInMilli;
long elapsedMinutes = millisUntilFinished / minutesInMilli;
millisUntilFinished = millisUntilFinished % minutesInMilli;
long elapsedSeconds = millisUntilFinished / secondsInMilli;
String yy = String.format("%02d:%02d",elapsedMinutes,elapsedSeconds);
R_Time.setText("Remaining Time:"+yy);
}
public void onFinish()
{
R_Time.setText("Time Finished");
AlertDialogUtils.showInfo(getContext(),R.string.time_finished__info);
}
}.start();
}
答案 0 :(得分:0)
使用counDownTimer创建服务并继续通知广播接收。在主要活动中注册广播接收器。这样你就可以实现。
答案 1 :(得分:0)
您可以按照以下步骤操作,
让我们假设您的应用重启。在这里,您需要仅在步骤#3中为X分钟启动CountDownTimer
。