服务实施模式

时间:2012-09-26 20:10:41

标签: android web-services service

好的我有这个应用程序需要定期发送更新到Web服务,我做了大量的研究,我已经提出了两种服务实现模式。

  1. 使用线程实现服务,因此定期更新时间可能不同,我将使线程以所需的时间间隔进入休眠状态,然后再次调用Web服务。我还需要更新活动,因此将使用广播接收器或信使。

  2. 将服务与计划定时器/警报管理器一起使用,唤醒系统并使用与广播接收器配合的意图服务。

  3. 哪种方法最好?

2 个答案:

答案 0 :(得分:2)

我想我会选择#2选项:

  1. 创建IntentService进行更新。
  2. 使用BroadcastReceiver注册IntentFilter并从中IntentService开始。
  3. 按要求的时间间隔使用AlarmManager Broadcast注册的操作。
  4. 我更喜欢这种方法,因为:

    1. 这是一种非常灵活的模式:您可以随时通过为网络连接更改,系统引导更改等不同操作注册相同的接收器来启动服务,
    2. 它使逻辑与应用程序的其他部分松散耦合。
    3. 管理线程没有麻烦。您可以使用IntentService
    4. 免费获得
    5. 这是解决这个问题的更多android-ish方式。

答案 1 :(得分:0)

主要区别在于后台服务可以被用户关闭,然后您将不再获得更新。如果使用AlarmManager注册事件,则可以控制何时/是否发生这些事件。如果用户关闭您的应用程序并进入任务管理器并关闭与您的应用程序相关的任何正在运行的服务,则AlarmManager仍将唤醒并发送一条消息,您的BroadcastReceiver将收到该消息。