diff --git a/src/com/android/settings/fuelgauge/BatterySipper.java b/src/com/android/settings/fuelgauge/BatterySipper.java index ffc6651f7dc..9a8e7835c01 100644 --- a/src/com/android/settings/fuelgauge/BatterySipper.java +++ b/src/com/android/settings/fuelgauge/BatterySipper.java @@ -32,7 +32,8 @@ import java.util.HashMap; class BatterySipper implements Comparable { final Context mContext; - final HashMap mUidCache = new HashMap(); + /* Cache cleared when PowerUsageSummary is destroyed */ + static final HashMap sUidCache = new HashMap(); final ArrayList mRequestQueue; final Handler mHandler; String name; @@ -99,8 +100,8 @@ class BatterySipper implements Comparable { void getQuickNameIconForUid(Uid uidObj) { final int uid = uidObj.getUid(); final String uidString = Integer.toString(uid); - if (mUidCache.containsKey(uidString)) { - UidToDetail utd = mUidCache.get(uidString); + if (sUidCache.containsKey(uidString)) { + UidToDetail utd = sUidCache.get(uidString); defaultPackageName = utd.packageName; name = utd.name; icon = utd.icon; @@ -193,7 +194,7 @@ class BatterySipper implements Comparable { utd.name = name; utd.icon = icon; utd.packageName = defaultPackageName; - mUidCache.put(uidString, utd); + sUidCache.put(uidString, utd); mHandler.sendMessage(mHandler.obtainMessage(PowerUsageSummary.MSG_UPDATE_NAME_ICON, this)); } } \ No newline at end of file diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 8ee896012a1..1dcb02c4458 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -178,6 +178,8 @@ public class PowerUsageSummary extends PreferenceFragment implements Runnable { super.onDestroy(); if (getActivity().isChangingConfigurations()) { sStatsXfer = mStats; + } else { + BatterySipper.sUidCache.clear(); } }