Что именно происходит, когда вы просматриваете приложение Android из списка последних приложений?

Оглавление:

Что именно происходит, когда вы просматриваете приложение Android из списка последних приложений?
Что именно происходит, когда вы просматриваете приложение Android из списка последних приложений?

Видео: Что именно происходит, когда вы просматриваете приложение Android из списка последних приложений?

Видео: Что именно происходит, когда вы просматриваете приложение Android из списка последних приложений?
Видео: Забыл пароль от своей учетной записи, сброс и переустивновка Windows - YouTube 2024, Апрель
Anonim
Когда вы используете приложение из списка приложений Android в настоящее время, что именно происходит с приложением и данными? Читайте дальше, когда мы исследуем.
Когда вы используете приложение из списка приложений Android в настоящее время, что именно происходит с приложением и данными? Читайте дальше, когда мы исследуем.

Сегодняшняя сессия вопросов и ответов приходит к нам с любезностью Android Enthusiast - подразделение Stack Exchange, основанной на сообществе группировки сайтов Q & A.

Вопрос

Android Enthusiast reader Eldarerathis интересуется функциональностью прокрутки приложения, которая позволяет вытащить список запущенных приложений через домашнюю кнопку, а затем проведите по экрану вправо, предположительно, чтобы закрыть их:

The recent apps list in Ice Cream Sandwich added the ability to swipe apps out of the list, thereby dismissing them permanently (and as far as I know this is a vanilla function, not a CM/custom ROM one). The documentation and platform highlights don’t appear to cover the under-the-hood workings of this functionality, but I’m curious to know what the system is actually doing.

Further adding to my curiosity, I decided to do a quick test: I started up Music on a CM9 install, then backed out of it. I then checked the recent apps list and saw it was indeed there (and in the proper state, based on the thumbnail). I then went into

Settings->Applications

и сила остановила приложение «Музыка», но она по-прежнему указана в последнем списке, что заставило меня поверить, что оно не связано с процессами, задерживающимися в фоновом режиме.

Понимая, что музыка, возможно, была плохим выбором, я также тестировал приложение USA Today. Это показало, в основном, то же поведение, и казалось, что он был вынужден «возобновить» после остановки силы (что имеет смысл), хотя эскиз в недавнем списке приложений не отражает это (кэшированный, я предполагаю?).

Итак, что на самом деле происходит на уровне ОС, когда вы удаляете приложение из последнего списка? Он просто очищает данные приложения из ОЗУ и мусора, собирает его, уничтожая его сохраненное состояние?

Что именно происходит, когда вы удаляете приложение из списка?

Ответы

Android Enthusiast contributor Austin Mills предлагает некоторые идеи:

Выключение приложений из недавнего списка приложений - ваниль, и да, недостаточно хорошо документировано. Это была тема достойного обсуждения на разных форумах Android … консенсус, как представляется, лучше всего описывается здесь в некоторых комментариях: поведение похоже на, но не совсем такое же, как закрытие приложения - в целом (для приложений, которые не определяйте явную обратную обработку кнопок), это то же самое, что ударить достаточно назад из приложения, которое вы выходите из него.

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

Конкретно для приложения «Музыка», я считаю, что он запускает службу, поэтому пока сама задача (музыкальное приложение / пользовательский интерфейс) может быть закрыта, служба продолжает работать в фоновом режиме, чтобы ваша музыка не останавливалась внезапно только потому, что задача были устранены по причинам управления памятью. Возможно, это повлияло на то, что вы видели.

Затем, участвуя в круг вопросов, связанных с вопросом и ответами, Эльдаратис вернулся с некоторыми исследованиями, чтобы завершить свой ответ:

I appear to have found the magical search terms that led to some explanations from Google employees. Specifically, I found a couple of different places where Dianne Hackborn explains what happens when you swipe something out of the recent list. The first is a comment on one of her Google+ posts:

[W]hat specifically happens when you swipe away a recent task is it: (1) kills any background or empty processes of the application (see here for what this means), and (2) uses the new API to tell any services of the application about the task being removed so it can do whatever it thinks is appropriate.

She also notes in a blog comment:

Actually, removing an entry in recent tasks will kill any background processes that exist for the process. It won’t directly causes services to stop, however there is an API for them to find out the task was removed to decide if they want this to mean they should stop. This is so that removing say the recent task of an e-mail app won’t cause it to stop checking for e-mail.

If you really want to completely stop an app, you can long press on recent tasks to go to app info, and hit force stop there. Force stop is a complete kill of the app - all processes are killed, all services stopped, all notifications removed, all alarms removed, etc. The app is not allowed to launch again until explicitly requested.

So, it looks like the summary is that swiping an app out of the list will first kill all background processes for the app, then use

onTaskRemoved

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

Есть что добавить к объяснению? Звучит в комментариях. Хотите узнать больше ответов от других пользователей Windows? Посмотрите здесь полную дискуссионную тему.

Рекомендуемые: