Чтобы сохранить состояние в моем приложении для Android, чтобы пользователь мог вернуться к активности, на которой он остановился, я установил очень полезный флаг AlwaysRetainTaskState в моем манифесте:
<activity android:name=".Main"
android:label="@string/app_name"
android:alwaysRetainTaskState="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Это делает работу, или я так думал; Я обнаружил, что система все еще может разрушать действия моего приложения, чтобы сохранить память, сохраняя при этом состояние. Чтобы проверить это, я написал небольшое тестовое приложение, которое создает целый цикл действий в цикле, чтобы увидеть, будут ли действия моего приложения уничтожены. Конечно же, система разрушает мою деятельность.
При чтении я обнаружил, что мне нужно использовать onSaveInstanceState () и onRestoreInstanceState (), чтобы помочь поддерживать состояние активности.
Чтобы перейти к моему вопросу, скажем, у меня есть Activity с несколькими глобальными переменными, некоторые из них являются статическими, а некоторые нет. Они состоят из логических значений, массивов, строк и т. Д. Моя проблема в том, что я не понимаю, какие из этих переменных являются постоянными при уничтожении активности. Какие из них я должен упаковать в пакет в onSaveInstanceState ()? Делает ли система что-нибудь с этими переменными, когда действие уничтожается?