如果我按照this article描述的方式设置计时器,我不确定有几件事情。我理解我的第二个问题可能有也可能没有明确的答案,所以如果我的第一个问题得到解决,我会接受答案。
1)如果计时器由一个活动开始并且设置为每5分钟运行一次,直到被告知停止,该活动是否完成或由用户更改活动发送到后台会影响它?有一次我使用计时器似乎非常断断续续,不知道这是我做错了什么,或者只是计时器的固有问题。
2)我见过一些人说即使是android也不建议使用计时器。我已经看到了postDelayed()的建议,但正如我引用的文章中所解释的那样,对于每X分钟需要重复的任务,这可能会有问题。我错过了更优选的选择吗?
基本上,在将信息同步回服务器之前,我正在检查与互联网的连接。如果设备未连接,我想启动一个计时器,检查连接并尝试每隔5或10分钟运行我的Sync方法,直到计时器停止成功为止。此计时器需要能够从任何活动开始,每5或10分钟继续运行,无论当前正在使用什么活动,并且可以从任何活动中取消。
答案 0 :(得分:0)
我对你所描述的内容做了类似的事情:
如果您启动一个新线程,一个实现计时器的服务,您可以从任何地方开始/停止/暂停它,您可以接收它所广播的任何消息(完成/错误等)。
如果回调需要为用户编写消息,您只需要小心显式运行UI线程。
当您停止服务时,如果您对其运行的线程有引用,您只需广播该服务的停止消息并调用join()。
希望有所帮助。