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
This commit is contained in:
Wesley Wang
2022-11-10 14:54:17 +08:00
parent a2f5c5a24e
commit f164be387e

View File

@@ -161,6 +161,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
public void onPause() { public void onPause() {
mParent.getLoaderManager().destroyLoader( mParent.getLoaderManager().destroyLoader(
AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS); AppInfoDashboardFragment.LOADER_BATTERY_USAGE_STATS);
closeBatteryUsageStats();
} }
private void loadBatteryDiffEntries() { private void loadBatteryDiffEntries() {
@@ -249,6 +250,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
@Override @Override
public void onLoadFinished(Loader<BatteryUsageStats> loader, public void onLoadFinished(Loader<BatteryUsageStats> loader,
BatteryUsageStats batteryUsageStats) { BatteryUsageStats batteryUsageStats) {
closeBatteryUsageStats();
mBatteryUsageStats = batteryUsageStats; mBatteryUsageStats = batteryUsageStats;
AppBatteryPreferenceController.this.onLoadFinished(); AppBatteryPreferenceController.this.onLoadFinished();
} }
@@ -257,4 +259,16 @@ public class AppBatteryPreferenceController extends BasePreferenceController
public void onLoaderReset(Loader<BatteryUsageStats> loader) { 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;
}
}
}
} }