关闭服务之前,请确保服务已完成(不重试)

时间:2020-02-14 13:43:46

标签: android

我是Android新手。我正在开发一个应用程序,该服务向后端发出三个请求,因此我需要确保在关闭应用程序之前完成请求。

我了解了在START_STICKY方法上使用onStartCommand的情况,但是此选项使服务重试,从而导致重复请求,例如,例如,当服务仅发出第一个请求时,app已关闭:

  • 运行服务...
    • 发出请求1
    • 关闭APP
  • 通过START_STICKY配置重试服务...
    • 发出请求1(重复)
    • 提出请求2
    • 提出请求3

还有其他方法可以确保服务在关闭之前完成其执行吗?

1 个答案:

答案 0 :(得分:1)

好吧,看来您希望自己的任务可靠并且可以将数据发送到服务器,但是时间并不重要(正如您所说的,您可以重试特定的时间,无关紧要)

对于这种微粒要求,您可以获得Android最新的WorkManager

将任务请求交给WorkManager时,它会根据满足工作条件(例如网络可用性和电源)的时间运行,以确保任务在特定的时间间隔内完成。

根据docs以及有关WorkManager的完整分步指南

WorkManager适用于可延期的任务,也就是说, 要求立即运行-并要求可靠运行,即使 应用程序退出或设备重新启动。
例如:

将日志或分析发送到后端服务定期同步

服务器上的应用程序数据

请检查此文档并按照指南了解更多信息