我知道,在stackoverflow上之前也有人问过这个问题,但是那些答案都对我不起作用。
值得一提的是:
- 我使用ActionBarSherlock和支持包。
- 按下home键时会调用onSaveInstanceState方法。而onCreate方法总是返回null给Bundle savedInstanceState。
- onRestoreInstanceState方法根本没有被调用。(如果onCreate方法能正常工作,我倒也不介意)。
- 另外(这应该不重要),我尝试在onSaveInstanceState方法的底部放置了super.onSaveInstanceState(outState)语句,也没有用。
以下是代码,希望有人能解决我的问题。
public class MainActivity extends SherlockFragmentActivity {
private static final String LOG_TAG = MainActivity.class.getSimpleName();
private static String STATE_TO_STORE = "state_to_store";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d(LOG_TAG, "onCreate: savedInstanceState = " + (savedInstanceState == null ? "NULL" : "Not NULL"));
// ... more code...
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.d(LOG_TAG, "onRestoreInstanceState: savedInstanceState = " + (savedInstanceState == null ? "NULL" : "Not NULL"));
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(STATE_TO_STORE, 5); // store some int
Log.d(LOG_TAG, "onSaveInstanceState bundle: " + outState.toString());
}
// ... more code ...
}
记录清楚表示
onSaveInstanceState
被调用,而 onCreate 得到的 savedInstanceState = NULL
。
noHistory
保持为true
呢? - Jonas