【问题标题】:Difference between Service and PeriodicWorkRequest()Service 和 PeriodicWorkRequest() 的区别
【发布时间】:2020-04-26 01:14:31
【问题描述】:

我必须在一个项目中工作,我必须每 15 分钟上传一次用户的位置。为此,我进行了很多搜索,发现Recurring work with PeriodicWorkRequest。但问题是,当应用程序根据here 给出的答案关闭/杀死时,WorkManager 可能无法工作。然后我在android中找到了Service。

所以我想知道如果我想每 15 分钟发送一次用户的位置,即使应用程序被杀死,那么如何解决这个问题?

【问题讨论】:

    标签: java android service android-workmanager


    【解决方案1】:

    如果应用程序被强制停止,操作系统会取消与该应用程序相关的所有作业。这不是 WorkManager 唯一的问题。操作系统将强制停止解释为用户对操作系统的请求,即他们不想再运行此应用程序。

    即使您使用 JobScheduler 或 Service,应用程序也已消失。但是强制停止应该是用户的决定。

    过去,一些 OEM 已经对 Android 操作系统进行了一些更改,因此从启动器中滑出应用程序会被解释为强制停止,会对计划的作业产生所有负面影响。这就是问题的开始。

    WorkManager 在这种情况下已经实施了一些缓解措施,但是如果在用户再次启动之前强制停止,应用程序将无法执行任何操作。

    如果有特定 OEM 的问题,请open an issue on the Android issuetracker,因为这可能违反了 CDD。 Google 可以联系 OEM 并要求他们修复 ROM。这需要时间,与此同时,您可以查看don't kill my app 之类的网站以了解特定设备上的限制,并使用autostarter 之类的库来帮助用户导航到正确的设置.

    【讨论】:

    • 您的建议很好。谢谢你。我已经使用 Sticky Services 解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2012-07-16
    • 2021-12-21
    相关资源
    最近更新 更多