Android заставит остановить обратный вызов приложения?

Если приложение принудительно остановлено, следуйте инструкциям Настройки-> Приложение-> Управление приложениями - & gt; - & GT; Force Stop, Android вызывает onDestroy Активности или Приложения? (Если нет, есть ли способ узнать, умерло ли приложение из-за принудительной остановки, вызванной пользователем).

 David22 нояб. 2012 г., 09:08
Но как насчет приложения Защита приложений? они используют дыру в безопасности, чтобы стать root? Потому что если вы принудительно остановите приложение, оно запустится снова, независимо от того, как вы его убьете, оно запустится снова.

Ответы на вопрос(3)

это действительно невозможно. Я не просматривал рассматриваемый код Android, но мог бы предположить, что «принудительная остановка» просто звонитkill на идентификатор процесса вашего приложения. Таким образом, единственный способ перехватить это, если вы можете перехватывать сигналы, что, я думаю, не позволяет Android.

Если бы вы были укоренены, вы могли бы сделать это, но не стандартным способом.

 22 июн. 2012 г., 19:48
По моему мнению, способность обрабатывать сигналы была бы довольно большой ошибкой в безопасности. :П

onDestroy() не вызывается, и вы не можете этого сделать. Android не поддерживает его.

Более расширенный ответ ...

onDestroy() не кажется вызванным в этом сценарии. Я проверил это, пытаясь получить этоToast мне перед звонком супер.онДестрой, ноToast сообщение так и не появилось (И согласноэта почта, onDestroy() действительно ненадежен и не будет вызываться часто, если вообще вызывается на телефонах, тогда как он может вызываться на эмуляторе - так что имейте это в виду). ВместоkillProcess() называется, и мы не можем перехватить это.

Кроме того, согласно принятому ответу вэта почтапохоже, что мы даже не можем поймать и выполнить задачи после останова, управляемого пользователем.

 22 июн. 2012 г., 19:42
Именно так. Это уже указано в моем ответе.
 22 июн. 2012 г., 19:46
Не за что! Не надо извиняться. Лучше переформулировать его другими словами, чтобы его было легче понять, а также означает важность того факта, что пользователь долженnot полагаться на onDestroy ().
 22 июн. 2012 г., 19:44
Извините, я не предполагал, что вы ошиблись ... просто хотел немного обобщить ответ ("как в большинстве случаев"). Надеюсь, вы не возражаете. :)
 22 июн. 2012 г., 19:42
Как и в большинстве случаев, нет никаких гарантий, чтоonDestroy() будет называться.
Решение Вопроса

Process.killProcess(int pid)). Все ресурсы, связанные с приложением, будут удалены и освобождены ядром. Так что нет, вы никак не можете перехватить это действие.

Когда вы выпустите свое приложение на рынок, консоль разработчика предоставит вам статистику, касающуюся принудительного закрытия, сбоев и т. Д. (Если вы об этом и спрашиваете).

Ваш ответ на вопрос