Есть два способа проверить View.onRestoreInstanceState (состояние Parcelable), один работает, другой дает сбой - PullRequest
1 голос
/ 23 июня 2011

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);
    }

}       
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...