我参与开发Android的测验应用程序。每一组问题都应在规定的时间内回答。这段时间可以使用android CountDownTimer来测量。
但是,当应用程序不再处于焦点时,CountDownTimer会暂停。 如果我想定时继续运行,即使应用程序已关闭,我该怎么办? (如果重新打开应用程序并且计时器已过期,则应用程序应显示适当的消息)。
答案 0 :(得分:2)
使用您的活动的生命周期 http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle
覆盖 OnPause()方法(在活动松散焦点时调用)
覆盖 OnResume()方法(当活动在前台返回时调用)
答案 1 :(得分:1)
只列出可以实施的方式(最好先实现):
user2553764回答只是拯救&根据系统计算定时器值。 (最适合,它很简单,并且不需要后台服务或线程)。
使用处理程序,请参阅How to set a timer in android。 (Official documentation表示它用于定时操作,但对你的用例来说似乎有点过分了。)
使用服务(bindservice),Implementing a Count down timer using Service in the background。 (但是服务可能会耗尽内存,在这种情况下可能必须使用第一种方法)。
AlarmManager,不知道它是否应该低于绑定服务但是可以使用它。 How to run a method every X seconds,建议使用AlarmManager> 10分钟或其他处理程序。 (如上所述,在android文档中也提到过。)
答案 2 :(得分:0)
您想使用AlarmManager创建警报。无论屏幕上显示什么活动,它们都会运行,甚至在手机处于睡眠状态时运行。