android - GcmTaskService 与 SyncAdapter

标签 android google-cloud-messaging android-syncadapter

我最近阅读了有关 GcmTaskService 和 GcmNetworkManager 来安排任务的信息。我的用例是典型的 SyncAdapter,我需要定期与我的服务器同步一些数据,我目前使用 SyncAdapter。 我的问题是 GcmTaskService 和 SyncAdapter 之间有什么区别。什么时候使用 GcmTaskService 什么时候使用 SyncAdapter?

最佳答案

GcmTaskService:由客户端应用程序实现,为 GcmNetworkManager 提供端点,以便在任务准备好执行时回调。必须根据执行窗口及时安排任务。在此执行窗口期间,调度程序将根据网络可用性、网络 Activity 和负载自行决定选择最佳执行时间。

Sync Adapter完成在服务器和本地数据库之间同步数据的工作。同步适配器异步运行,它们定期且高效地传输数据,但不是即时的。如果您需要进行实时数据传输,您应该在 AsyncTask 或 IntentService 中进行。该框架有助于管理和自动化数据传输,并协调不同应用之间的同步操作。

Google Cloud Messaging (GCM) 提供了使该消息传递系统正常工作所需的服务器和设备组件。使用 GCM 触发传输比轮询服务器状态更可靠、更高效。虽然轮询需要始终处于 Activity 状态的服务,但 GCM 使用在消息到达时激活的 BroadcastReceiver。虽然即使没有更新可用,定期轮询也会使用电池电量,但 GCM 只会在需要时发送消息。

关于android - GcmTaskService 与 SyncAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31782599/

相关文章:

android - 即使我的 android 应用程序被破坏,com.google.android.gms 也会耗尽电池

java - "cannot find symbol method setOnDismissListener(<anonymous OnDismissListener>)"

android - 有没有什么方法可以在单个 google 服务器 api 调用中为每个设备 token 发送不同的消息?

Android GCM 注册及更多信息

android - 如何将类别添加到我的 SyncAdapter

android - 根据屏幕密度和屏幕大小以编程方式增加文本大小

android - adb devices 命令不显示任何内容

android - 无法使用适用于 Android 的 Google Cloud Messaging(不是帮助程序库)接收消息

安卓同步适配器服务 : Keep alive after onPerformSync ends?

Android SyncAdapter 用例