package cm.android.framework.ext.ui.v7; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import android.content.res.Configuration; import android.os.Bundle; import android.preference.PreferenceActivity; import cm.android.framework.ext.util.MyIntent; import cm.android.util.ExitHolder; public class BasePreferenceActivity extends PreferenceActivity{ private static final Logger logger = LoggerFactory.getLogger(BasePreferenceActivity.class); protected final Bundle bundleBak = new Bundle(); private final ExitHolder exitHolder = new ExitHolder(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MyIntent.restore(savedInstanceState, bundleBak); exitHolder.init(this, new ExitHolder.IExitActivity() { @Override public void exitActivity() { BasePreferenceActivity.this.finish(); } }); } @Override protected void onDestroy() { exitHolder.deInit(this); super.onDestroy(); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); MyIntent.restore(savedInstanceState, bundleBak); logger.info("bundleBak = " + bundleBak); } @Override protected void onSaveInstanceState(Bundle outState) { MyIntent.backup(outState, bundleBak); super.onSaveInstanceState(outState); logger.info("bundleBak = " + bundleBak); } @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); logger.info("newConfig = " + newConfig); } }