Android - учебник по блокнотам - жизненный цикл - какая-то работа сделана дважды? - PullRequest
9 голосов
/ 15 сентября 2010

Согласно статье "Основы приложений", раздел "жизненный цикл компонента", onResume () всегда вызывается, когда представление становится активным, независимо от предыдущего состояния.

В учебнике «Блокнот», упражнение 3, я обнаружил что-то запутанное в NoteEdit.java:
В onCreate (), а также в onResume () вызывается метод populateFields ().
Разве не достаточно (или даже лучше) иметь его только в onResume ()?

В таком небольшом примере это не принесет никакого вреда, если populateFields () выполняется дважды, но в более крупном приложении все может быть по-другому ...

Спасибо и всего наилучшего,
Маркус Н.

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Посмотрев на Notepad3, я бы сказал, что вы правы.Кажется, у них нет никаких причин звонить populateFields() в onCreate() и onResume().onResume достаточно.

0 голосов
/ 18 октября 2011

Я вижу, где вам это нужно, в обоих местах, если приложение приостанавливается, тогда вам нужно это в onResume, и если ваш процесс будет убит, или пользователь вернется к активности, тогда вам это понадобится в onCreate, особенно если вы выполняете некоторые предварительные действия.-processing.

Согласно документации .... для onResume () они рекомендуют использовать его для облегченных вызовов, в отличие от onCreate ():

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

Приложение Notepad может захотеть объявить переменнуюесли метод уже был вызван onCreate, чтобы не повторять в onResume ().

...