好的我有这个应用程序需要定期发送更新到Web服务,我做了大量的研究,我已经提出了两种服务实现模式。
使用线程实现服务,因此定期更新时间可能不同,我将使线程以所需的时间间隔进入休眠状态,然后再次调用Web服务。我还需要更新活动,因此将使用广播接收器或信使。
将服务与计划定时器/警报管理器一起使用,唤醒系统并使用与广播接收器配合的意图服务。
哪种方法最好?
答案 0 :(得分:2)
我想我会选择#2选项:
IntentService
进行更新。BroadcastReceiver
注册IntentFilter
并从中IntentService
开始。AlarmManager
Broadcast
注册的操作。我更喜欢这种方法,因为:
IntentService
答案 1 :(得分:0)
主要区别在于后台服务可以被用户关闭,然后您将不再获得更新。如果使用AlarmManager注册事件,则可以控制何时/是否发生这些事件。如果用户关闭您的应用程序并进入任务管理器并关闭与您的应用程序相关的任何正在运行的服务,则AlarmManager仍将唤醒并发送一条消息,您的BroadcastReceiver将收到该消息。