【问题标题】:Foreground service getting killed by the OS前台服务被操作系统杀死
【发布时间】:2018-03-25 00:36:07
【问题描述】:

我正在创建一个每 30 秒捕获一次位置的应用。为此,我有一个前台服务和一个处理程序,它每 30 秒获取一次最新位置。该应用程序适用于许多具有库存操作系统的设备。但是,在 OnePlus、Panasonic、Vivo 等某些设备上,即使在更改电池优化状态和打盹模式之后,前台服务也会被操作系统(有时也是应用程序)杀死。我知道在 Android 中创建一个不会死的服务是不可能的。有什么办法可以实现我想要的吗?请告诉我。谢谢!

【问题讨论】:

标签: android service foreground-service


【解决方案1】:

首先,是的,您是对的,当资源有限时,操作系统会停止服务,因此为了解决这个问题,您在创建服务时说明服务的类型,如下所示: START_STICKY、START_NOT_STICKY、START_REDELIVER_INTENT...

阅读本文的最后一部分,它讨论了何时使用它们中的哪一个

https://android-developers.googleblog.com/2010/02/service-api-changes-starting-with.html

Service.onStartCommand() 回调,允许服务更好地控制系统应如何管理它。这里的关键部分是函数返回一个新的结果代码,告诉系统如果它的进程在运行时被杀死,它应该如何处理服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多