diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index af0d8bb157b..c8e4d3f9fa9 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -382,6 +382,8 @@ public class SettingsActivity extends Activity @Override public void onDrawerClosed(View drawerView) { mDrawerToggle.onDrawerClosed(drawerView); + // Cannot process clicks when the App is finishing + if (isFinishing()) return; onHeaderClick(mCurrentHeader); } @@ -512,7 +514,6 @@ public class SettingsActivity extends Activity mActionBar.setHomeButtonEnabled(true); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); - mDrawerLayout.setDrawerListener(new DrawerListener()); mDrawer = (ListView) findViewById(R.id.headers_drawer); mDrawer.setAdapter(mHeaderAdapter); @@ -705,12 +706,16 @@ public class SettingsActivity extends Activity invalidateHeaders(); registerReceiver(mBatteryInfoReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); + + mDrawerLayout.setDrawerListener(new DrawerListener()); } @Override public void onPause() { super.onPause(); + mDrawerLayout.setDrawerListener(null); + unregisterReceiver(mBatteryInfoReceiver); mHeaderAdapter.pause();