summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jeff Sharkey <jsharkey@android.com> 2016-10-26 16:58:49 -0600
committer Jeff Sharkey <jsharkey@google.com> 2016-10-26 23:01:53 +0000
commit7765d7320d8435a0e814d9f10039c7866f9d76a2 (patch)
treee6cd279adb762bc50a7d3c6cd9ae7d51210b9efb
parente9db00e39fb58db2380ec3f9fba11f006a4b4185 (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.java8
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) {