android:测验应用程序的计时器

时间:2013-08-08 16:40:39

标签: android background-process countdown

我参与开发Android的测验应用程序。每一组问题都应在规定的时间内回答。这段时间可以使用android CountDownTimer来测量。

但是,当应用程序不再处于焦点时,CountDownTimer会暂停。 如果我想定时继续运行,即使应用程序已关闭,我该怎么办? (如果重新打开应用程序并且计时器已过期,则应用程序应显示适当的消息)。

3 个答案:

答案 0 :(得分:2)

使用您的活动的生命周期 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

覆盖 OnPause()方法(在活动松散焦点时调用)

  • 停止计时器
  • 存储当前时间

覆盖 OnResume()方法(当活动在前台返回时调用)

  • 计算经过的延迟
  • 如果计时器已过期:显示消息
  • 以剩余秒数重新启动倒数计时器

答案 1 :(得分:1)

只列出可以实施的方式(最好先实现):

  1. user2553764回答只是拯救&根据系统计算定时器值。 (最适合,它很简单,并且不需要后台服务或线程)。

  2. 使用处理程序,请参阅How to set a timer in android。 (Official documentation表示它用于定时操作,但对你的用例来说似乎有点过分了。)

  3. 使用服务(bindservice),Implementing a Count down timer using Service in the background。 (但是服务可能会耗尽内存,在这种情况下可能必须使用第一种方法)。

  4. AlarmManager,不知道它是否应该低于绑定服务但是可以使用它。 How to run a method every X seconds,建议使用AlarmManager> 10分钟或其他处理程序。 (如上所述,在android文档中也提到过。)

答案 2 :(得分:0)

您想使用AlarmManager创建警报。无论屏幕上显示什么活动,它们都会运行,甚至在手机处于睡眠状态时运行。