Конфигурация изменена (изменение ориентации) и уничтожает действия - так ли это должно работать?

Я прочитал о том, как Android обрабатывает «изменения конфигурации» - уничтожая активную активность.

Я действительно хочу узнать от Android Team, почему это так. Я был бы признателен за объяснение того, как шли рассуждения, потому что я не понимаю его. Тот факт, что он действует таким образом, ставит нас всех, как я вижу, в мир боли.

Предположим, у вас есть Activity, которая представляет собой несколько EditText: s, флажков и т. Д. Если пользователь начинает заполнять эту форму текстом / данными, а затем меняет ориентацию (или получает телефонный звонок), то все вводимые пользователем данные исчезают. Я не нашел способа сохранить государство. Это заставляет нас делать чрезвычайно болезненное кодирование, чтобы не потерять все данные.

На мой взгляд, вам нужен еще один класс «не-Activity» (иликласс "удержание стоимости" возможно), у которого есть одно поле для каждого «элемента формы» (EditText, флажок и т. д.).

Для каждого существующего «элемента формы» вам нужно присоединить событие типа «onChanged» (или onTextChanged или что-то в этом роде), которое обновляет соответствующее поле вкласс "удержание стоимости" чтобы убедиться, что для каждого введенного вами символа (например, в EditText) сохраняется сразу.

Возможно, вы можете использовать некоторый слушатель (например, «onDestroy» или что-то в этом роде), а затем заполнить класс, содержащий значения, данными.

Я также нашелэта часть информации где они говорят об использовании Bundle,onSaveInstanceState а такжеonRestoreInstanceState, но это также означает, что программист должен вручную сохранить и затем позже вернуть значения в правильное место? Этот подход немного менее сложен, чем мои предложения выше, но все же не очень хорош.

Может ли кто-нибудь сказать мне, что я совершенно не прав и что это не так, и я полностью пропустил какую-то важную информацию?

Ответы на вопрос(4)

Ваш ответ на вопрос