- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我最近阅读了有关 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/
我想将项目中的 BroadcastReceiver 替换为 GcmNetworkManager。所以我读了一些教程并这样做: 1)在 list 中我添加:
我需要在 Android 应用程序的后台定期运行网络任务。 我最初打算使用 AlarmManager(不能使用 JobScheduler 因为它必须在 Lollipop 之前的设备上工作),但后来我遇
我正在尝试使用 GcmTaskService 实现服务。这是我在主要 Activity 中调用名为 Myservice 的服务的代码。 OneoffTask myTask = new OneoffTa
我正在尝试使用 GcmNetworkManager API(自 Google Play Services 7.5 起存在)实现一个 PeriodicTask。 我的任务在我的应用程序启动后立即安排,并
我有这段代码 GcmTaskService 服务代码,检查互联网是否可以在线推送一些数据: public class NetworkChangeService extends GcmTaskServi
我最近阅读了有关 GcmTaskService 和 GcmNetworkManager 来安排任务的信息。我的用例是典型的 SyncAdapter,我需要定期与我的服务器同步一些数据,我目前使用 Sy
我创建了一个非常简单的服务来更新服务器上的用户位置: public class LocationSchedulerService extends GcmTaskService { @Overr
我正在尝试在没有 waiting the 30 seconds 的情况下启动 GcmTaskService .如果任务不成功,则它应遵循通常的 GcmTask 规则。 but to prevent a
我们使用 GcmTaskService 将用户创建的实体异步上传到我们的服务器。 这对数千名用户来说没有任何问题,但对于至少两个用户来说,任务已计划但永远不会运行。 我们使用此代码来安排任务(sche
我设置了一个 periodicTask,每 60 秒左右运行一次。它应该只需要一两秒就可以运行,所以不太可能发生任何重叠,但如果之前的运行挂起或发生其他情况,我检测到这一点并跳过当前运行的最佳方法是什
背景 Google 有多种作业/任务调度解决方案,例如 JobScheduler和 GcmTaskService .每个都有自己的优点和缺点。 最近,Google 推出了一个名为“Firebase J
我是一名优秀的程序员,十分优秀!