diff options
| -rw-r--r-- | services/core/java/com/android/server/om/OverlayManagerService.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/om/OverlayManagerService.java b/services/core/java/com/android/server/om/OverlayManagerService.java index 2f9536ff6427..23532c1b4eb3 100644 --- a/services/core/java/com/android/server/om/OverlayManagerService.java +++ b/services/core/java/com/android/server/om/OverlayManagerService.java @@ -261,6 +261,8 @@ public final class OverlayManagerService extends SystemService { private final OverlayActorEnforcer mActorEnforcer; + private int mPrevStartedUserId = -1; + public OverlayManagerService(@NonNull final Context context) { super(context); try { @@ -338,6 +340,10 @@ public final class OverlayManagerService extends SystemService { } private void onStartUser(@UserIdInt int newUserId) { + // Do nothing when start a user that is the same as the one started previously. + if (newUserId == mPrevStartedUserId) { + return; + } try { traceBegin(TRACE_TAG_RRO, "OMS#onStartUser " + newUserId); // ensure overlays in the settings are up-to-date, and propagate @@ -348,6 +354,7 @@ public final class OverlayManagerService extends SystemService { } finally { traceEnd(TRACE_TAG_RRO); } + mPrevStartedUserId = newUserId; } private static String[] getDefaultOverlayPackages() { |