我有一个小部件,按下后会发送一个广播,启动一个CountDownTimer更新我的小部件,并在最后播放警报。这在仿真器中很漂亮。我如何确保CountDownTimer滴答并完成?
然而,在我的手机上,这是一个不同的故事。我的手机资源受到限制,导致我的进程定期死亡,当然,这意味着CountDownTimer不再更新我的小部件。
看来,未来可靠地做事的唯一方法是使用AlarmManager,因为这会设置系统级别的警报。但是,文档陈述并且我同意,你不应该使用它作为蜱。但是,由于您可能使用的任何其他东西都有可能被任意关闭,所以它们并没有给我们太多选择。
我的问题是:有没有办法确保CountDownTimer保持滴答状态并最终调用onFinish(),还是我必须简单地删除它并切换到AlarmManager并“误用”它?任何其他保证东西剔除和完成的选项也是受欢迎的。
我应该补充一点,我不能依靠调用onUpdate()的操作系统,这两者都是因为它每隔30分钟就会这样做,并且也是因为大部分时间部件什么都不做。只有当它被点击时,它会在几秒钟内每秒钟滴答下来。
这会完成什么? – 2012-03-29 11:43:54
虽然服务仍然可能被杀害。此外,具有CountDownTimer的东西不是一个活动,它是一个BroadcastReceiver,但也许这并不重要。我们基本上将该服务用作主播。不过,我知道会发生什么。客户仍然会抱怨,偶尔倒计时不会奏效。 – 2012-03-29 12:10:47
实际上,与此相结合的服务可能是票据:http://stackoverflow.com/questions/3856767/android-keeping-a-background-service-alive-preventing-process-death – 2012-03-29 12:22:15