Android 12 上,前台服务不允许在另一个应用程序中启动后台服务

问题描述 投票:0回答:1

我已经启动了一项服务并将其提升到前台状态,这似乎有效。 但是现在我希望该服务启动在另一个(未启动的)应用程序后台运行的另一个服务,但它不起作用:

2023-09-14 15:21:20.427 15578-15578/se.company.myservice E/DataExportService:不允许启动服务 Intent { dat=content://se.company.storageconnector.StorageConnector/cloud/ cmp=se .othercompany.a.b.c/se.company.x.service.InformationExportService }:应用程序在后台 uid UidRecord{72c502b u10a125 CAC bg:+3m48s37ms 空闲更改:空闲过程:0 seq(0,0,0)}

但是,如果我单击并启动包含我想要启动的服务的应用程序,那么它就会开始工作。到底是怎么回事?我以为前台服务总是可以启动后台服务?

android android-service background-service foreground-service android-12
1个回答
0
投票

我怀疑这是 Android 的一项安全功能,即不允许启动已停止的软件包(即使是从前台),除非至少手动启动一次。该问题发生在强制停止(可能是全新安装)后,但打开一次后,即使重新启动也不会阻止其工作。

在 Android 中,平台可以通过在启动意图中设置标志来启动已停止的包,但非平台应用程序不允许这样做。我想我对此无能为力。

© www.soinside.com 2019 - 2024. All rights reserved.