远程绑定服务是否获得它绑定到的进程的前台亲和力?
does a remote bound service get foreground affinity of process it is bound to?
我有一个有两个进程的应用程序。让我们称它们为 Main 和 Remote。两者都有服务。主进程服务是前台服务(带有通知)。远程服务绑定到主进程,但它本身不是前台(没有通知,没有调用 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}
我相信您正在寻找的答案是 here:
An app is considered to be in the foreground if any of the following is true:
... Another foreground app is connected to the app, either by binding to one of its services or by making use of one of its content providers...
我有一个有两个进程的应用程序。让我们称它们为 Main 和 Remote。两者都有服务。主进程服务是前台服务(带有通知)。远程服务绑定到主进程,但它本身不是前台(没有通知,没有调用 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}
我相信您正在寻找的答案是 here:
An app is considered to be in the foreground if any of the following is true:
... Another foreground app is connected to the app, either by binding to one of its services or by making use of one of its content providers...