diff --git a/services/core/java/com/android/server/AppStateTracker.java b/services/core/java/com/android/server/AppStateTracker.java index 3a7b5d6835077..207e007cc62fd 100644 --- a/services/core/java/com/android/server/AppStateTracker.java +++ b/services/core/java/com/android/server/AppStateTracker.java @@ -700,14 +700,16 @@ public class AppStateTracker { Slog.d(TAG,"onAppIdleStateChanged: " + packageName + " u" + userId + (idle ? " idle" : " active") + " " + bucket); } - final boolean changed; - if (bucket == UsageStatsManager.STANDBY_BUCKET_EXEMPTED) { - changed = mExemptedPackages.add(userId, packageName); - } else { - changed = mExemptedPackages.remove(userId, packageName); - } - if (changed) { - mHandler.notifyExemptChanged(); + synchronized (mLock) { + final boolean changed; + if (bucket == UsageStatsManager.STANDBY_BUCKET_EXEMPTED) { + changed = mExemptedPackages.add(userId, packageName); + } else { + changed = mExemptedPackages.remove(userId, packageName); + } + if (changed) { + mHandler.notifyExemptChanged(); + } } }