我必须从事一个项目,我必须每 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/