Разница между убийцей задачи Убийство приложения и Android OS Убийство приложения

Есть ли разница между тем, что происходит, когда вы используете приложение Kill Kill, чтобы убить приложение, и что происходит, когда ОС Android убивает приложение из-за скудных ресурсов?

В Android SDK говорится, что метод Application.onTerminate() не вызывается, когда ОС убивает приложение из-за нехватки ресурсов. Похоже, что ОС не полностью закрывает приложения и что она делает именно то, что делают многозадачные убийцы задач.

Если они делают то же самое, то убийцы задач не наносят больше вреда, чем сама ОС, правильно?

Ответ 1

По сравнению с Froyo нет никакой разницы.:) Все, что может сделать убийца задач, это убить -9 процесс, когда он находится в фоновом режиме, что делает то же самое, что делает ОС, когда хочет его память. И да, это не чистый и упорядоченный выход, теперь это убийство-процесс-мертвый-правый. Фактически, в обычных средах Android Application.onTerminate() никогда не будет убит; процессы только уходят, убивая.

До убийства Froyo у убийц был доступ к другому API - "force stop" - это позволило им гораздо более жестоко остановить все приложения. Это включает в себя остановку любых запущенных сервисов, удаление любых зарегистрированных аварийных сигналов, удаление уведомлений и т.д.

Ответ 2

Есть ли разница между тем, что происходит, когда вы используете приложение Kill Kill, чтобы убить приложение, и что происходит, когда ОС Android убивает приложение из-за скудных ресурсов?

Убийца задач запускает приложение с орбиты. Он завершает процесс, удаляет все аварийные сигналы, удаляет все зарегистрированные PendingIntents (например, для обновлений местоположения) и т.д.

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

Если они делают то же самое, то убийцы задач не наносят больше вреда, чем сама ОС, правильно?

Нет, убийцы задач приносят больший вред приложению.

Ответ 3

AFAIK по опыту, когда Android убивает приложение, вы не можете рассчитывать на то, что он будет убит чисто (нет вызовов для уничтожения методов). Что касается убийцы задачи... ну, я думаю, это зависит от того, как реализован конкретный убийца задачи.

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