У меня есть два действия: A и B. Когда действие A сначала запускается, оно обращается к переданному ему Intent (поскольку Bundle - null, как и должно быть в первый раз), и соответственно отображает информацию:
CustInfo m_custInfo;
...
protected void onCreate(Bundle savedInstanceState)
{
    ...
    Bundle bundle = (savedInstanceState == null) ? getIntent().getExtras() : savedInstanceState;
    m_custInfo = (CustInfo) m_bundle.getSerializable("CustInfo");
    if (m_custInfo != null
        ...
}
Это отлично работает в первый раз. Элементы управления EditText и ListView заполнены правильно.
Теперь, когда щелкнут элемент в списке, начнется действие B, чтобы показать детали:
m_custInfo = m_arrCustomers.get(pos);
Intent intent = new Intent(A.this, B.class);
intent.putExtra("CustInfo", m_custInfo); // CustInfo is serializable
// printing this intent, it shows to have extras and no flags
startActivityForResult(intent, 1);
Сразу же перед началом работы B каркас вызывает A overridden onSaveInstanceState():
protected void onSaveInstanceState(Bundle outState)
{
    super.onSaveInstanceState(outState);
    outState.putSerializable("CustInfo", m_custInfo);
}
В действии B, когда на панели действий нажата кнопка "Вверх", я хочу вернуться к активности A и быть в том же состоянии, что и раньше:
public boolean onOptionsItemSelected(MenuItem item)
{
    if (item.getItemId() == android.R.id.home)
    {
        Intent intent = NavUtils.getParentActivityIntent(this);
        // printing this intent, it shows to have flags but no extras
        NavUtils.navigateUpFromSameTask(this); // tried finish() here but that created an even bigger mess
        return true;
    }
    ...
}
В этом заключается проблема, когда в onCreate() активности A второй раз параметр Bundle null  и getExtras() возвращает null. Поскольку onSaveInstanceState() был вызван, я бы ожидал, что параметр Bundle будет не null.
Я читал об этой проблеме на других веб-сайтах, пробовал предложения, но ничего не работает.
