Fix Battery usage page refresh issue

restartBatteryStatsLoader made a loader existed in fragment. onStart
will resume the loader. onResume registers mBatteryBroadcastReceiver
will caused the loader activated the second time. We move
restartBatteryStatsLoader to onStart can reduce the loader runs only
once.

Fixes: 140488811
Test: manual
Change-Id: I4cac574ea8e9c07c1a9df48a57fb8140d5687b21
This commit is contained in:
Raff Tsai
2019-09-05 14:22:09 +08:00
parent b2e5ebee4a
commit 577240642d
2 changed files with 4 additions and 9 deletions

View File

@@ -67,17 +67,12 @@ public abstract class PowerUsageBase extends DashboardFragment {
@Override
public void onStart() {
super.onStart();
}
@Override
public void onResume() {
super.onResume();
mBatteryBroadcastReceiver.register();
}
@Override
public void onPause() {
super.onPause();
public void onStop() {
super.onStop();
mBatteryBroadcastReceiver.unRegister();
}
@@ -85,7 +80,7 @@ public abstract class PowerUsageBase extends DashboardFragment {
final Bundle bundle = new Bundle();
bundle.putInt(KEY_REFRESH_TYPE, refreshType);
getLoaderManager().restartLoader(0, bundle, new PowerLoaderCallback());
LoaderManager.getInstance(this).restartLoader(0, bundle, new PowerLoaderCallback());
}
protected abstract void refreshUi(@BatteryUpdateType int refreshType);

View File

@@ -57,7 +57,7 @@ public class PowerUsageBaseTest {
mFragment = spy(new TestFragment());
mFragment.setBatteryStatsHelper(mBatteryStatsHelper);
doReturn(mLoaderManager).when(mFragment).getLoaderManager();
doReturn(mLoaderManager).when(LoaderManager.getInstance(any()));
}
@Test