2016-06-28 57 views
0

我使用服务来连续同步显示在活动上的信息。该服务运行无限循环(true),其中信息每10秒更新一次。在一些设备中,服务在执行一段时间后停止。我如何保持intentService的任务运行?即使用户最小化应用程序,它也必须运行。如何创建永无止境的IntentService?

+0

对不起,你问题的主题与你的问题相反。或在之前提出:“如何”和最后一个问号。 – statosdotcom

+1

“我...不断同步信息......每10秒钟” - 如果通过“同步”,你的意思是通过互联网与某个服务器同步,你为什么认为这是一个好主意? Android将竭尽全力阻止应用程序执行此类操作,因为用户重视电池寿命。 – CommonsWare

回答

3

你不应该这样做(你甚至不能从android 6.0:doze)。考虑使用cloud messaging来通知您的应用程序服务器上发生了某些变化。

0

A Service非常适合托管长时间运行的进程,这些进程超过任何一项活动。如果您只是显示数据,而不是保存数据或进行某种后台处理,则根本没有理由使用Service。只需在该活动中使用Handler#postDelayed(...),并确保在暂停时移除任务。

每十秒轮询一次可能过多。事实上,除非您希望数据的变化频率与您正在进行的轮询相同,否则轮询可能效率不高。