diff --git a/src/com/android/settings/applications/AppInfoBase.java b/src/com/android/settings/applications/AppInfoBase.java index 442b1d8bff2..ef90fd96aa8 100644 --- a/src/com/android/settings/applications/AppInfoBase.java +++ b/src/com/android/settings/applications/AppInfoBase.java @@ -69,9 +69,12 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment // Dialog identifiers used in showDialog protected static final int DLG_BASE = 0; + protected boolean mFinishing; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + mFinishing = false; mState = ApplicationsState.getInstance(getActivity().getApplication()); mSession = mState.newSession(this); @@ -147,6 +150,7 @@ public abstract class AppInfoBase extends SettingsPreferenceFragment intent.putExtra(ManageApplications.APP_CHG, appChanged); SettingsActivity sa = (SettingsActivity)getActivity(); sa.finishPreferencePanel(this, Activity.RESULT_OK, intent); + mFinishing = true; } protected void showDialogInner(int id, int moveErrorCode) { diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index c3645853ac4..4eb86a90791 100755 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -244,14 +244,15 @@ public class InstalledAppDetails extends AppInfoBase @Override public void onResume() { super.onResume(); + if (mFinishing) { + return; + } AppItem app = new AppItem(mAppEntry.info.uid); app.addUid(mAppEntry.info.uid); getLoaderManager().restartLoader(LOADER_CHART_DATA, ChartDataLoader.buildArgs(getTemplate(getContext()), app), mDataCallbacks); - if (mPackageInfo != null) { - new BatteryUpdater().execute(); - } + new BatteryUpdater().execute(); } @Override @@ -269,6 +270,9 @@ public class InstalledAppDetails extends AppInfoBase public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); + if (mFinishing) { + return; + } handleHeader(); mNotificationPreference = findPreference(KEY_NOTIFICATION);