java - Service 和PeriodicWorkRequest() 之间的区别

标签 java android service android-workmanager

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

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

最佳答案

如果应用程序被强制停止,操作系统将取消与该应用程序相关的所有作业。这不仅仅是 WorkManager 的问题。操作系统将强制停止解释为用户向操作系统发出的请求,表示他们不想再运行该应用程序。

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

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

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

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

关于java - Service 和PeriodicWorkRequest() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61395115/

相关文章:

java - 如何手动释放复杂对象

android - 警报消息未显示在警报对话框中?

android - MonkeyRunner 和 AndroidViewClient (Touch) 的脚本错误

android - 从首选项 Activity 启动 Activity 导致权限拒绝异常

android - 使用后台服务发送短信并通过短信发送 IMEI 号码

.net-core - .NET Core 错误 1053 服务未及时响应启动或控制请求

java - 数组索引越界

java - 不能在使用接口(interface)的类中使用 EJB

Java WebService异常 : Undefined port type with JBoss

wcf - 当消息大小超过 64K 时,WCF 服务出现 HTTP 400 错误请求错误