onRestoreInstanceState можно протестировать, изменив ориентацию экрана и изменив настройки эмулятора devtools / Development Development / max app process - с максимальным значением, равным единице.
onRestoreInstanceState работает с ориентацией экрана, но завершается сбоем, если для максимального процесса приложения установлено значение 1 и перезапускается приложение. Я использовал Debug.waitForDebugger (); подключить отладчик для процесса max app, установленного в 1.
В представлении анализируемый объект сохранен и восстановлен:
восстановление:
MyClass(Parcel in) {
boolean boolValues[] = new boolean[2];
in.readBooleanArray(boolValues);
if (boolValues[1])
{
next = in.readParcelable(MyClass.class.getClassLoader());
}
//
//recurse here
}
Экономия:
public void writeToParcel(Parcel out, int flags) {
// TODO Auto-generated method stub
boolean boolValues[] = new boolean[2];
boolValues[0] = aValue;
boolValues[1] = next != null;
out.writeBooleanArray(boolValues);
if (boolValues[1])
{
out.writeParcelable(next,flags);
}
}