У меня была ситуация, когда onDestroy
пожары сразу после onSaveInstanceState
.Does onDestroy void пакет onSaveInstanceState?
Будет ли среда выполнения (Dalvik) сохранить копию набора bundle
в onSaveInstanceState
, и передать его обратно в onCreate
?
Или, является bundle
null/void? Если пучок имеет в конечном итоге destroyed
, является сохранение «Вид»/«гуй» -состояние быть сделано вместо этого в (или какой-либо другой метод пожизненной)?
Update (конкретная проблема вождения моего вопроса)
public class CView : MXFragmentView<CViewVM>
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle bundle)
{
base.OnCreateView(inflater, container, bundle);
_inflater = inflater;
_container = container;
_bundle = bundle;
...
}
public override void OnSaveInstanceState(Bundle outState)
{
Log.Info(TAG_APP, "CView.OnSaveInstanceState(): BEGIN");
base.OnSaveInstanceState(outState);
outState.PutInt(SaveStateParams.CurrentTabIndex, _tabHost.CurrentTab);
}
public override void OnDestroy()
{
Log.Info(TAG_APP, "CView.OnDestroy(): BEGIN");
base.OnDestroy();
}
}
I/APP_TAG(6398): CView.OnSaveInstanceState(): BEGIN
I/APP_TAG(6398): CView.OnDestroy(): BEGIN
W/Bundle(6398): Key android:view_state expected Bundle but value was a android.util.SparseArray. The default value <null> was returned.
W/Bundle(6398): Attempt to cast generated internal exception:
W/Bundle(6398): java.lang.ClassCastException: android.util.SparseArray cannot be cast to android.os.Bundle
W/Bundle(6398): at android.os.Bundle.getBundle(Bundle.java:1142)
W/Bundle(6398): at android.app.LocalActivityManager.dispatchCreate(LocalActivityManager.java:455)
W/Bundle(6398): at CView.n_onCreateView(Native Method)
W/Bundle(6398): at CView.onCreateView(CView.java:60)
Я ознакомление с постом Saving Android Activity state
Нет, это не так. Сохраненное состояние будет передано 'onCreate()' при восстановлении 'Activity'. –
@ XaverKapeller Это отличная новость, однако в настоящее время я имею дело с лестницей (я получаю исключение SparseArray/Bundle). – samosaris
Какое исключение? Тогда вы должны делать что-то неправильно. Я не могу сказать вам, в чем проблема, не видя stacktrace исключения и вашего кода, пожалуйста, отредактируйте их в свой вопрос. –