Обратные вызовы жизненного цикла активности не завершены? - PullRequest
0 голосов
/ 04 октября 2018

Возможно ли, что обратные вызовы жизненного цикла активности будут прерваны перед выполнением всего его кода?может ли обратный вызов прервать другой?

https://developer.android.com/guide/components/activities/activity-lifecycle

В этой документации рекомендуется не выполнять тяжелую работу, например, в onPause, поскольку он имеет «очень короткое выполнение», кто это контролирует?как?система вызывает следующий обратный вызов жизненного цикла, даже если onPause еще не завершил выполнение?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Эти вызовы в основном влияют на пользовательский интерфейс (наряду с onCreate, onCreateView), и если им потребуется много времени для завершения кода, пользователь наверняка узнает об этом.

Скажем, у вас это есть в вашемМетод onResume ()

OnResume(){ super.onResume; updateView(); }

Что-то стандартное, это то, что обычно происходит до того, как фрагмент или действие «возобновляются».

If your updateView ();для завершения требуется 2 секунды, если он загружает данные или создает объекты, то есть 2 секунды, что пользовательский интерфейс «заморожен», и пользователь не может использовать приложение или может ошибиться как «сломан»

Если у вас есть теоретическийтот же сценарий для onPause (), то есть 2 секунды «замороженного» времени в приложении

Желательно, чтобы «updateView ()» (по сути, ваши методы onResume и onPause) выполнялись как можно быстрее.так что пользователь не замечает никаких «лагов» в приложении.

0 голосов
/ 04 октября 2018

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

...