Salvar e restaurar o estado expandido / recolhido de um ExpandableListActivity

Eu tenho um ExpandableListActivity (usando um SimpleCursorTreeAdapter) que inicia outra atividade quando o usuário clica em um elemento filho. Ao pressionar o botão Voltar na nova atividade, todos os itens da lista são recolhidos novamente. Como faço para salvar o estado expandido do ExpandableListActivity e restaurá-lo novamente.

Eu já tentei implementar onSaveInstanceState () e onRestoreInstanceState () como este ...

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    Parcelable listState = getExpandableListView().onSaveInstanceState();
    outState.putParcelable("ListState", listState);
}


@Override
protected void onRestoreInstanceState(Bundle state) {
    super.onRestoreInstanceState(state);
    Parcelable listState = state.getParcelable("ListState");
    getExpandableListView().onRestoreInstanceState(listState);
}

... mas onRestoreInstanceState () nunca é chamado. Também tentei restaurar o estado no método onCreate (), mas também não é chamado:

if (savedInstanceState != null) {
    Parcelable listState = savedInstanceState.getParcelable("ListState");
    getExpandableListView().onRestoreInstanceState(listState);
}

questionAnswers(3)

yourAnswerToTheQuestion