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

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

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

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

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

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

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

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

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

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

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

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

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