在Android中安排后台同步作业(API> 15)

时间:2015-08-10 13:54:56

标签: android google-cloud-messaging android-syncadapter android-background android-jobscheduler

我们要求为Android应用安排定期同步作业。没有硬计划要求,但只要同步每6-7小时运行一次,它应该没问题(假设有网络连接)。我们使用compileSdkVersion作为22,将minSdkVersion作为15(ICS)。我能找到几种解决方案:

  • AlarmManager(不考虑网络可用性)
  • SyncAdapter(需要同步帐户)
  • 的jobscheduler
  • GcmNetworkManager

以上哪一项是最佳候选人?为什么?

1 个答案:

答案 0 :(得分:1)

我会推荐GcmNetworkManager,因为它可以完全按照你的意愿行事。它甚至会持续定期任务并在启动时恢复它们。

  • AlarmManager - 正如您所说,它不考虑网络可用性。此外,通过使用GcmNetworkManager,您的应用对电池使用的影响会更小,因为任务通常会在其他任务运行时运行。
  • SyncAdapter - 更多用于基于服务器推送的同步。它用于同步gmail和Google日历应用程序,例如,当在Web客户端或其他设备上进行更改时,服务器会触发同步。
  • JobScheduler - 也是一个不错的选择,但它只能在Android L上使用。