diff options
| -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) { |