diff options
| author | 2016-10-26 16:58:49 -0600 | |
|---|---|---|
| committer | 2016-10-26 23:01:53 +0000 | |
| commit | 7765d7320d8435a0e814d9f10039c7866f9d76a2 (patch) | |
| tree | e6cd279adb762bc50a7d3c6cd9ae7d51210b9efb | |
| parent | e9db00e39fb58db2380ec3f9fba11f006a4b4185 (diff) | |
Only bind to RESOLVE_EPHEMERAL_PACKAGE once.
We never unbind, so we only ever need one bind request; creating more
bind requests just wastes resources.
Test: builds
Bug: 32446301
Change-Id: I7d6c4a93b8f5bb8d9aed7a5041b193e19a2d65fc
| -rw-r--r-- | services/core/java/com/android/server/pm/EphemeralResolverConnection.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/EphemeralResolverConnection.java b/services/core/java/com/android/server/pm/EphemeralResolverConnection.java index 68b465aaf816..a6a377419a6a 100644 --- a/services/core/java/com/android/server/pm/EphemeralResolverConnection.java +++ b/services/core/java/com/android/server/pm/EphemeralResolverConnection.java @@ -56,6 +56,7 @@ final class EphemeralResolverConnection { /** Intent used to bind to the service */ private final Intent mIntent; + private volatile boolean mBindRequested; private IEphemeralResolver mRemoteInstance; public EphemeralResolverConnection(Context context, ComponentName componentName) { @@ -111,8 +112,11 @@ final class EphemeralResolverConnection { return; } - mContext.bindServiceAsUser(mIntent, mServiceConnection, - Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE, UserHandle.SYSTEM); + if (!mBindRequested) { + mBindRequested = true; + mContext.bindServiceAsUser(mIntent, mServiceConnection, + Context.BIND_AUTO_CREATE | Context.BIND_FOREGROUND_SERVICE, UserHandle.SYSTEM); + } final long startMillis = SystemClock.uptimeMillis(); while (true) { |