2015-06-18 2 views
-3

Я много читал о жизненном цикле деятельности, но я не могу найти простой ответ. Предположим, кто-то нажимает Включает приложения аппаратная кнопка. Когда приложение переключается на другое приложение, обязательно будет вызываться onPause(). Также нажмите Назад (закрыть приложение) или будет вызывать onPause().Вызывается onPause(), когда пользователь закрывает приложение из откликов

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

Это не ясно для меня, и в документации не описан этот случай.

EDIT: Я ошибался, говоря, что onPause() не вызывается после нажатия кнопки. Прости.

+0

@downvoter хотел бы прокомментировать, что случилось с моим ответом? что вы запустили сразу за миллисекунд моего опубликования. –

+0

@ Sharpedge расскажи мне об этом. -_- – Galax

+0

"onPause() не будет вызываться, пока кто-то не выберет другое приложение из списка" Это ложно, по крайней мере на моем устройстве onPause вызывается, когда кнопка нажата, чтобы отобразить список приложений. – M4rtini

ответ

1

Основываясь на Activity page, onPause() будет называться. Любое приложение, находящееся на переднем плане, вызовет onPause(), как только пользователь вытащит список приложений, чтобы начать прокручивать приложения.

0

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

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

+0

Он вызывает onPause прямо перед отображением списка приложений. – Galax

+0

да, я знаю, что .. Thats, что я говорю, OP сказал, что onPause() вызывается после выбора приложения. –

+1

Действительно, он ошибся :) – Galax

0

Приложения будет вызывать метод OnPause сначала перед появится список приложений, но не тогда, когда он скрыл (или даже если выбрано другое приложение)

0

Да onPause() всегда вызывается перед onDestroy(). Это выглядит следующим образом: onPaused() -> OnStop() -> OnDestroy()

enter image description here

Всегда следовать в направлении стрелок. Эти методы идут последовательно, независимо от того, что. Такой метод, как onStop(), всегда выполняется после onPause() и перед onDestroy() независимо от ситуации.

+0

'onPause()' - это единственный, который вы можете гарантировать. 'onStop()' и 'onDestroy()' может и не быть. –

+0

Я думал, что он имел в виду, что он сам оттолкнул приложение ... не другие приложения –

+0

«Но вот вопрос. Когда я открываю список приложений, где я могу переключаться между приложениями, и я прокручу приложение, чтобы закрыть его, будет onPause ()? Я знаю, что onDestroy() всегда вызывается в этом случае, но всегда вызывает onPause() перед onDestroy()? " - Что он здесь означает, я совершенно прав. Он означает, что он сам удалит приложение. –

0

Жизненный цикл деятельности всегда, вызываемый в порядке, указанном в документации. Значение onCreate>onStart>onResume> >onStop>onDestroy. Могут быть некоторые повторы вызовов, например, переход между onResume и , поскольку деятельность выходит на передний план и перемещается на задний план, но они всегда в этом порядке. Смысл, если вы уверены, что вызывается onDestroy, тогда вы можете быть уверены, что были вызваны и onStop.