为什么在 Xiaomi 上模拟会在后台自行关闭?

MIUI 和 HyperOS(Xiaomi、Redmi、POCO)杀后台应用比其他系统更激进。请为 Mock Location 开启自启动并取消电池限制,应用首次启动时就会提示这样做。

模拟由后台服务维持,“自行关闭”几乎总是意味着系统把它关掉了。在系统日志中,这表现为进程被系统强行停止,而不是应用出错。

接下来会发生一件不太直观的事:测试提供程序仍以最后写入的值注册在 Android 中,但已经没有谁再向其中写入新坐标,因为创建它们的进程已不存在。从外面看就像“模拟卡住了”:位置不变,但不再更新,过一段时间系统又会恢复真实位置。所以这个问题往往不会被立即察觉。

Xiaomi、Redmi 和 POCO 用户最常遇到这种情况:MIUI 和 HyperOS 对后台进程的管理比其他系统更严格。解决方法是三项设置:自启动、取消电池限制、在最近任务中锁定应用;带确切路径的讲解见单独的 Xiaomi 使用说明。如果三项中只做一项,请选自启动:没有它,进程被关闭后系统根本不会重新拉起服务,模拟要等到您自己打开应用才会恢复。开启自启动后,系统会在几秒内拉起服务,应用读取已保存的状态,无需您操作就能继续运行。

在 Samsung 上原因相同,只是机制叫“休眠应用程序”:One UI 会自动让一段时间未使用的应用休眠,而手机放在口袋里时,模拟应用恰恰看起来处于闲置状态。One UI 的路径见 Samsung 使用说明。在 Huawei 和 Honor 上,请关闭应用启动的自动管理,并打开全部三个开关:自启动、关联启动和后台活动;详见 Huawei 使用说明。

应用自身会做两件相互独立的事。打开时,它会比对已保存的状态和实际状态,如果进程已终止,就恢复模拟,这条路径始终有效。此外,看门狗定时器会在后台定期检查状态,并尝试自行恢复服务。但两者都有局限:如果系统禁止应用在后台启动,没有您的参与就无法恢复服务,因为此时代码根本不会运行。所以系统设置无法用程序代替。

检查结果最简单的方法是看通知栏中的常驻通知:只要它还在,服务就在运行。如果它消失了,说明系统还是关掉了服务,请回到上面的设置。

还有疑问? 联系客服.