我想获取用户的位置。我负责前台服务并在每部手机上工作。但是小米手机,如果应用程序不在后台是关闭前台服务的。我尝试了所有打开自动启动器的方法。我已经通过设置允许一切,但事实并非如此。我已经尝试了一个月了,请大家帮忙。
最佳答案
我建议您使用闹钟。
您可以使用服务继续在后台和唤醒锁中执行代码,但我在几款特定的智能手机上遇到了与您描述的相同的问题,并且还发现如果 Android 系统需要可用内存,服务可以随时被终止。
我找到的解决方案是使用警报(执行前台服务的警报)。如果您安排闹钟,则无论您的应用程序是否仍在执行,该闹钟都会响起。这样,即使系统由于缺乏资源而终止了该服务,应用程序也可以获得设备位置。这是我发现在这种情况下唯一有效的解决方案。
我在一些 Google I/O 大会上想到了这个想法,当时他们说,如果你确实需要应用程序继续运行,那么无论发生什么,你都应该使用警报而不是服务。
使用精确的闹钟,因为在某些设备中,不精确的闹钟有时至少需要 5 分钟才能闹钟响起。
这对我有用,但我在两三年前就做过了。我希望它仍然有效。
关于java - 小米杀死前台服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59695410/