Invoke close() method for BatteryUsageStats to close cursor window
- Invoke close() method for BatteryUsageStats to close cursor window,
avoid OOM.
Bug: 245385410
Test: make SettingsRoboTests
Change-Id: I68f36a42a33d2546cb191cec88f5431e24dd5b84
(cherry picked from commit f164be387e8e64fc97997dfa352aeaba0da83b55)
diff --git a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
index 747bd78..f8d54a2 100644
--- a/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppBatteryPreferenceController.java
@@ -169,6 +169,7 @@
public void onPause() {
mParent.getLoaderManager().destroyLoader(
AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS);
+ closeBatteryUsageStats();
}
private void loadBatteryDiffEntries() {
@@ -292,6 +293,7 @@
@Override
public void onLoadFinished(Loader<BatteryUsageStats> loader,
BatteryUsageStats batteryUsageStats) {
+ closeBatteryUsageStats();
mBatteryUsageStats = batteryUsageStats;
AppBatteryPreferenceController.this.onLoadFinished();
}
@@ -300,4 +302,16 @@
public void onLoaderReset(Loader<BatteryUsageStats> loader) {
}
}
+
+ private void closeBatteryUsageStats() {
+ if (mBatteryUsageStats != null) {
+ try {
+ mBatteryUsageStats.close();
+ } catch (Exception e) {
+ Log.e(TAG, "BatteryUsageStats.close() failed", e);
+ } finally {
+ mBatteryUsageStats = null;
+ }
+ }
+ }
}