我有一个有两个进程的应用程序。让我们称它们为主和远程。两者都有服务。主进程服务是前台服务(带有通知)。远程服务绑定到主进程,但本身不是前台(无通知,不调用 startForeground)。
问题是 android 会考虑远程服务前台,因为它绑定到前台进程吗?
我试图从 adb 中获取此信息,但据我所知,这些信息不存在:
* ServiceRecord{eb553a7 u0 com.example.app/.remote.remoteProcess.ipcCommunication.RemoteProcessService}
intent={cmp=com.example.app/.remote.remoteProcess.ipcCommunication.RemoteProcessService}
packageName=com.example.app
processName=com.example.app:remote
baseDir=/data/app/com.example.app-2/base.apk
dataDir=/data/user/0/com.example.app
app=ProcessRecord{d194a7f 11618:com.example.app:remote/u0a222}
createTime=-8m5s459ms startingBgTimeout=--
lastActivity=-45s353ms restartTime=-7m29s395ms createdFromFg=true
startRequested=true delayedStop=false stopIfKilled=false callStart=true lastStartId=11
Bindings:
* IntentBindRecord{608134d CREATE}:
intent={cmp=com.example.app/.remote.remoteProcess.ipcCommunication.RemoteProcessService}
binder=android.os.BinderProxy@1dfde02
requested=true received=true hasBound=true doRebind=false
* Client AppBindRecord{9825313 ProcessRecord{8cb8fdb 11552:com.example.app/u0a222}}
Per-process Connections:
ConnectionRecord{40c25cb u0 CR com.example.app/.remote.remoteProcess.ipcCommunication.RemoteProcessService:@5a6e89a}
All Connections:
ConnectionRecord{40c25cb u0 CR com.example.app/.remote.remoteProcess.ipcCommunication.RemoteProcessService:@5a6e89a}
我相信
您正在寻找的答案在这里:
如果满足以下任一条件,则应用被视为处于前台:
。另一个前台应用通过绑定到其服务之一或使用其内容提供程序之一连接到该应用...