Координация интерактивности: onStop и onResume - PullRequest
3 голосов
/ 16 октября 2010

У меня есть два занятия.Один загружает все строки из базы данных, а другой сохраняет в базу данных.Когда у меня есть второе сохранение в onStop и первое переполнение данных в onResume, они делают это не по порядку (первое возобновляется, а второе сохраняет).Мне удалось это исправить, поместив сохраненные данные в onPause, но почему это произошло?Это был самый чистый способ сделать это?

Ответы [ 2 ]

5 голосов
/ 16 октября 2010

Выполнение сохранения в onPause первой actvity должно быть в порядке.

Вы обнаружили, что время жизни действия переднего плана происходит между вызовом onResume () и соответствующим вызовом onPause (). В течение этого времени действие находится перед всеми другими действиями на экране и взаимодействует с пользователем.

Когда вы запускаете второе действие, onPause вызывается для первого, а затем интерактивный элемент управления переключается на второе, а onStop для первого вызывается в фоновом режиме.

Это улучшает отзывчивость и позволяет новому пользователю работать как можно скорее. Следовательно, вы должны стараться, чтобы реализация onPause была максимально быстрой и эффективной.

См. Следующие документы Android для получения дополнительной информации о жизненном цикле http://developer.android.com/guide/topics/fundamentals.html,, но то, что вы нашли, должно работать хорошо для вас.

0 голосов
/ 30 октября 2015

Официальная цитата в виде дополнения:

В документации Activity указано, что

onPause() там, где выиметь дело с пользователем, покидающим вашу деятельность.Что наиболее важно, любые изменения, сделанные пользователем, должны быть зафиксированы

...