Service和IntentService,哪个运行从服务器轮询数据库值的服务更好?

时间:2013-01-22 02:51:51

标签: android android-service alarmmanager intentservice timertask

我已经阅读了很多关于ServiceIntentService的资源。然而,当做出决定时,我没有足够的信心选择使用哪种类型来创建后台服务,该后台服务将在一个时间间隔内从数据库轮询数据,并在我获得所需数据时停止它,因为数据代表请求的状态,例如。订购药品确认状态(待定,已完成,正在进行中)。我需要检测状态何时设置为“已完成”并发送通知以提醒用户订单已完成。之后,服务将自动停止。 请善意的建议。谢谢。

2 个答案:

答案 0 :(得分:0)

意图服务 -

  • 在工作线程中工作,而不是在主线程中工作。

  • 打算执行他们的操作是单独的线程,然后关闭。

  • 他们会执行操作并停止。

  • 非常适合htp get之类的内容,不需要与服务器保持联系。

服务 -

  • 在主线程中运行。

  • 当需要与服务器保持连接时,这是理想的选择 (即永久tcp连接),您可以采用的方式是使用asynctask或服务中托管的更经典的线程来执行网络内容的服务(非目的)

答案 1 :(得分:0)

没有区别。使用你发现的任何更容易这个问题不值得花时间担心。只需确保您了解需要在主(UI)线程上运行的代码以及需要在后台(工作线程)线程上运行的代码。在IntentService中,“长时间运行的操作”需要在onHandleIntent()中运行如果您在Service中使用onStartCommand(),您将启动自己的后台线程并执行“ “在那上面运行”。