我最近阅读了有关GcmTaskService和GcmNetworkManager来计划任务的信息。我的用例是典型的SyncAdapter,在其中我需要定期与服务器同步一些数据,而我目前使用的是SyncAdapter。
我的问题是GcmTaskService和SyncAdapter有什么区别。何时使用GcmTaskService与何时使用SyncAdapter?
最佳答案
GcmTaskService
:由客户端应用程序实现,以提供GcmNetworkManager
的终结点,以便在准备好执行任务时可以回调该终结点。必须根据执行窗口的时间安排任务。在此执行窗口期间,调度程序将根据网络可用性,网络 Activity 和负载来自行选择最佳执行时间。
Sync Adapter负责在服务器和本地数据库之间同步数据。同步适配器异步运行,它们有规律且高效地传输数据,但不是瞬时传输。如果需要进行实时数据传输,则应在AsyncTask或IntentService中进行。该框架可帮助管理和自动化数据传输,并协调不同应用之间的同步操作。
Google Cloud Messaging(GCM)提供了使此消息传递系统正常工作所需的服务器和设备组件。与轮询服务器的状态相比,使用GCM触发传输更可靠,更高效。轮询要求服务始终处于 Activity 状态,而GCM使用在消息到达时激活的BroadcastReceiver。即使没有可用的更新,定期轮询也会消耗电池电量,但GCM仅在需要时发送消息。