0

我计划在我的应用程序中实现一个计时器,这样只有特定的活动才会有它,比如我有 2 个活动,1 个片段。当我移动到活动 1 时,计时器启动,如果 5 分钟后我仍然在同一个视图上,它应该显示一个警告对话框,要求刷新视图。单击确定后,它将再次刷新并重新启动计时器(将再次开始倒计时),单击取消后,它将不会刷新页面而是重新启动计时器。

如果我的活动或片段不在视图中,则不应发生这种情况。假设我在活动 1 上,并且计时器为 2 分钟,并且我导航到活动 2,计时器变为 0,并且在视图再次可见之前不会在后台计数。

关于什么是最好的解决方法的任何想法?任何例子都会有所帮助

提前致谢!

4

1 回答 1

0

创建一个带有计时器方法的类,例如 timerStart、timerStop。在类中使用 java timer Timer。在 timerStart 方法上安排一个 timerTask(需要时间),在该方法中您在特定时间后显示一个对话框并取消 timerStop 方法上的计时器。

Timer timer;

public void timerStart()
{
timer = new Timer();
timer.schedule(new timerTask()
{

@Override
public void run() {

{Show your dialog}

}


},delay);
}

public void timerStop()
{
  timer.cancel();
}

在您的第一个活动中实例化该类并在活动的 onCreate 方法上调用 timerStart。

当用户单击对话框上的取消按钮时调用 timerStop 和 timerStart。

单击确定刷新页面并再次调用 timerStop 和 timerStart。

在您的第一个活动调用 timerStop 的 onPause 方法中。当您导航到其他活动时,这会取消计时器。

于 2019-05-03T16:04:28.693 回答