Android 安卓应用编程接口<;26永久销毁服务是否返回START\u粘滞?

Android 安卓应用编程接口<;26永久销毁服务是否返回START\u粘滞?,android,android-service,Android,Android Service,对于以API=26有一个不同的实现,作为最后的手段,将采用较低版本,但我希望避免这种情况 我为尽可能含糊不清提前表示歉意。我删除了我的答案b/c我想我误解了START_STICKY,直到我刚刚读到它的a,我认为你是对的,系统应该尝试再次启动,但我从未见过这种情况发生,所以我会推迟。在什么设备上会发生这种情况?有很多设备都是这样的。默认情况下,如果服务被终止,则不要重新启动服务(即使服务返回START\u STICKY)。这些设备这样做是为了“节省电池”。在这些设备上,用户必须手动将应用程序添加到

对于以API<26为目标的设备,我有一个服务,它在收到工作信号之前一直保持后台状态。此时,服务通知用户并将自己移动到前台,在那里它将完成任务并返回后台

我的问题是,有时服务在收到信号后无法完成任务。我正在对原因进行故障排除,但假设不是内部生命周期错误(崩溃,
stopSelf()
等),系统是否有可能在不重新启动的情况下永久关闭我的服务

我不排除内部错误的可能性,但这会帮助我缩小搜索范围。我知道系统应该重新启动服务,以防内存不足(我认为这里不是这样)。请记住,API>=26有一个不同的实现,作为最后的手段,将采用较低版本,但我希望避免这种情况


我为尽可能含糊不清提前表示歉意。

我删除了我的答案b/c我想我误解了START_STICKY,直到我刚刚读到它的a,我认为你是对的,系统应该尝试再次启动,但我从未见过这种情况发生,所以我会推迟。在什么设备上会发生这种情况?有很多设备都是这样的。默认情况下,如果服务被终止,则不要重新启动服务(即使服务返回START\u STICKY)。这些设备这样做是为了“节省电池”。在这些设备上,用户必须手动将应用程序添加到允许在后台运行的应用程序列表中(有时称为“受保护的应用程序”)。我不确定,但粗略估计大约有90%的设备(如果不是更多的话)。如果这种关闭没有调用服务的任何回调,我怎么可能希望重新启动已经死亡的服务呢?