Fix potential OOM caused by DataProcessManager

The AsyncTasks started in DataProcessManager are not cancelled when
fragment is closed. Introduce helper class LifecycleAwareAsyncTask to
cancel AsyncTask automatically when lifecycle is stopped.

Bug: 384473507
Flag: EXEMPT bug fix
Test: Unit test & open/close battery usage screen 1000 times
Change-Id: I060f559fa85cc5feb9a42cb8dcc0581782a91d09
This commit is contained in:
Jacky Wang
2024-12-17 09:52:36 +08:00
parent 87ce9dbbcf
commit 356fe97185
6 changed files with 258 additions and 19 deletions

View File

@@ -118,6 +118,7 @@ public final class BatteryUsageDataLoader {
final BatteryLevelData batteryLevelData =
DataProcessManager.getBatteryLevelData(
context,
null,
userIdsSeries,
/* isFromPeriodJob= */ true,
batteryDiffDataMap -> {