【问题标题】:How to stop jobservice when the user exits/closes the app?当用户退出/关闭应用程序时如何停止作业服务?
【发布时间】:2019-03-20 02:17:56
【问题描述】:

我已经为我的应用实现了 JobService。该作业进行 API 调用。这必须每 4 分钟完成一次。

此外,作业应仅在使用应用程序时启动,并应在用户退出应用程序时停止。

我正在使用 setPeriodic 使其每 4 分钟运行一次。

我计划在 onStop 活动生命周期方法中停止/取消工作。但是,当用户关闭应用程序时,如何确保作业停止/取消?

在 onStartJob 方法中,一旦我收到对我的 api 调用的响应,我就会返回 false。这会停止工作吗?还是我应该做点别的?

【问题讨论】:

  • 在 onDestroy() 或 onStop() 活动方法中只需调用 jobschedulerservice 并取消所有挂起的作业。

标签: android android-jobscheduler jobservice


【解决方案1】:

在标准 AOSP 中,使用作业调度程序运行作业的最短时间为 15 分钟。所以JobService 看起来不适合用于解决您的问题。您应该查看Bound Services,退出应用程序时分离。您的 4 分钟逻辑应在服务内手动实现。

【讨论】:

  • 感谢您的回复。我正面临这个问题:stackoverflow.com/questions/55136177/…
  • 我可以使用处理程序每​​ 4 分钟安排一次,并在该开始和结束作业服务内部(服务进行 api 调用)。所以在应用程序退出时,我将使用作业 ID 取消作业。这可能吗?谢谢
  • 是的,这是一种可能的方法。
  • 谢谢。你能告诉我工作服务是否可以解决我的问题吗? stackoverflow.com/questions/55136177/…
  • 不。作业调度器用于后台任务,活动之间的通信可以通过接口回调来完成
猜你喜欢
  • 1970-01-01
  • 2013-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
  • 2013-05-15
相关资源
最近更新 更多