BugFix: add synchronized protection

Test: manual

Change-Id: I1e8b4756e435c13cead2b21619a0c72a399117f7
Signed-off-by: liulvping <liulvping@xiaomi.com>
This commit is contained in:
liulvping
2019-11-06 15:12:20 +08:00
parent a5f53a59c7
commit e7dade153c

View File

@@ -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();
}
}
}