onTaskRemoved() 在华为和小米设备中没有被调用

2024-05-23

我一直在使用onTaskRemoved()服务中的方法,用于检测应用程序何时通过滑动从设备最近列表中删除。我执行一些日志记录和发生这种情况时需要执行的一些其他操作。 它工作完美。

然后我在运行Android 6.0的华为设备上检查了这个方法。 该方法永远不会被调用。我还添加了 Log.d 调用,正如预期的那样,该日志从未出现。小米设备上也会发生同样的情况。

有什么想法为什么会发生这种情况以及如何解决这个问题吗?或者是否有另一种方法可以检测应用程序是否从最近的列表中删除,而不依赖于onTaskRemoved() ?

Thanks


在某些设备(某些 LG、华为、小米等)上,您的应用程序需要手动添加到“受保护的应用程序”或“允许在后台运行的应用程序”列表中,以便 Android 重新启动 STICKY 服务。如果您的应用程序尚未手动添加到此列表中,Android只会杀死您的进程并且不会重新启动它们,也不会调用onTaskRemoved()。这样做是为了通过限制可以在后台运行 STICKY 服务的应用程序数量来延长电池寿命。

在此类设备上,您应该在“设置”中看到一个页面,有时在“电源管理”下,有时在其他位置,您需要在其中显式添加应用程序。您还需要告诉您的用户将您的应用明确添加到此列表中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

onTaskRemoved() 在华为和小米设备中没有被调用 的相关文章

随机推荐