Android 网络定期运行的最佳实践?

Android 网络定期运行的最佳实践?,android,performance,Android,Performance,我正在制作一个应用程序,其中包含执行网络调用以查找更新。任何人都可以提供一些最佳实践来执行此任务。我可以让服务在后台运行,并定期使用处理程序执行网络操作,但这将消耗大量数据和电池。还有其他方法吗?使用AlarmManager或JobScheduler(取决于API级别),并选择一个正常的频率。打盹模式将阻止您变得过于疯狂。当后端识别到更新时,您可以处理来自任何服务器的推送通知。由于您列出的原因,服务器本身最好定期收听更新,而不是应用程序 当应用程序收到推送通知时,这意味着它需要更新 您有几个选择

我正在制作一个应用程序,其中包含执行网络调用以查找更新。任何人都可以提供一些最佳实践来执行此任务。我可以让服务在后台运行,并定期使用处理程序执行网络操作,但这将消耗大量数据和电池。还有其他方法吗?

使用AlarmManager或JobScheduler(取决于API级别),并选择一个正常的频率。打盹模式将阻止您变得过于疯狂。

当后端识别到更新时,您可以处理来自任何服务器的推送通知。由于您列出的原因,服务器本身最好定期收听更新,而不是应用程序

当应用程序收到推送通知时,这意味着它需要更新

您有几个选择:

  • Azure通知中心:
  • Firebase云消息:

好的。我将尝试使用AlarmManager。非常感谢。API级别>17,因为当屏幕关闭时它们不会触发。此外,任何非前台、非绑定服务都可能随时被终止,因此您可能会丢失更新程序。但即使手机关机也会发出警报(尽管可能会延迟),而且不会死机。我应该将其与服务或广播接收器一起使用吗?实际下载需要在服务中进行,因为广播接收器需要快速完成(然后被杀死)。但是你需要一个广播接收器来接收警报。感谢您目前没有推送通知。因此,必须使用报警管理器