2013-10-06 1 views
0

У меня есть MainActivity и второе действие, которое имеет EditText. Я хочу, чтобы содержимое EditText всегда сохранялось. Однако я не хочу, чтобы EditTextChangedListener записывал файл после изменения 1 символа.Сохранить EditText перед возвратом

Что такое хорошее решение? Я думал о onPause или onBackPressed.

Как насчет кнопки домой? Я думаю, что приложение остается открытым, так что нужно ли сохранять? А как насчет других прерываний, таких как телефонные звонки? Does onPause поймать все это?

спасибо.

ответ

0

Да OnPause вызывается всякий раз, когда ваше приложение прерывается или идет на фоне проверки Activity life cycle

0

Хорошим решением будет включать в себя такую ​​логику в методе onPause(). Он всегда будет называться во всех ситуациях. Это то, что говорит документация разработчика:

Вы должны использовать метод onPause() для записи любых постоянных данных (например, прав пользователя) на хранение.

Одна вещь, которую вы должны иметь в виду, заключается в том, что этот метод можно назвать более частым, чем желательно, например, когда загорается экран (некоторые из них имеют 15 секундных тайм-аутов экрана). Таким образом, вы не должны вводить слишком много дорогостоящих операций внутри.

Что касается нажатия кнопки «домой», рекомендуется сохранить данные (по адресу onPause()). Причина в том, что ваша деятельность находится в фоновом режиме, но может быть уничтожена. Система может уничтожить работу, если ей необходимо восстановить память. (Например, вы начинаете тоже любые другие приложения, после этого и поместить их все в фоновом режиме) Из документации:

Stopped: Активность полностью скрыта другая деятельность ( деятельности в настоящее время в «фоновом режиме») , Остановленное действие также остается alive (объект Activity сохраняется в памяти, он поддерживает все данные и информацию о пользователе , но не прикреплен к окну менеджер). Тем не менее, он больше не виден пользователю, и он может быть убит системой, когда требуется память в другом месте.

0

Нет. Правильный ответ здесь - прослушивать событие ключа возврата. Это означает, что пользователь завершил ввод в поле и инициировал сохранение содержимого поля в файле. Это полезно и во многих других обстоятельствах.

Смотрите этот ответ: Android Use Done button on Keyboard to click button

Питер.