diff --git a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java index 19f3a46aaee..40756a0a5c3 100644 --- a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java +++ b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java @@ -161,6 +161,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController public void onPause() { mParent.getLoaderManager().destroyLoader( AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS); + closeBatteryUsageStats(); } private void loadBatteryDiffEntries() { @@ -249,6 +250,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController @Override public void onLoadFinished(Loader loader, BatteryUsageStats batteryUsageStats) { + closeBatteryUsageStats(); mBatteryUsageStats = batteryUsageStats; AppBatteryPreferenceController.this.onLoadFinished(); } @@ -257,4 +259,16 @@ public class AppBatteryPreferenceController extends BasePreferenceController public void onLoaderReset(Loader loader) { } } + + private void closeBatteryUsageStats() { + if (mBatteryUsageStats != null) { + try { + mBatteryUsageStats.close(); + } catch (Exception e) { + Log.e(TAG, "BatteryUsageStats.close() failed", e); + } finally { + mBatteryUsageStats = null; + } + } + } }