onCreate(Bundle savedInstanceState) in always null

activity-lifecycle, android, android-lifecycle

Solution

Check that your manifest does not contain android:noHistory="true".

I spent hours looking for an answer and it was that simple.

Problem

I know, this question is asked before on stackoverflow, but non of the answers worked for me. Probably worth mentioning: - I use ActionBarSherlock with the support package. - Method `onSaveInstanceState` IS called when I press the home button. The method `onCreate` just always gives NULL for the `Bundle savedInstanceState`. - Method `onRestoreInstanceState` is never called at all. (I wouldn't mind if the `onCreate` worked ;)). - Also (it shouldn't matter) I tried putting `super.onSaveInstanceState(outState)` at the bottom of `onSaveInstanceState`. No luck either. Here's the code. I hope someone had this problem and solved it. ``` 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 ... } ``` The logging clearly states `onSaveInstanceState` is being called and onCreate gets `savedInstanceState = NULL`.

Original source

Related problems