Ручка силой закрыта? - PullRequest
       24

Ручка силой закрыта?

1 голос
/ 04 октября 2010

Есть ли способ уведомить деятельность / службу о запросе на принудительное закрытие непосредственно перед его уничтожением?

Я имею в виду, когда пользователь нажимает кнопку принудительного закрытия в Menu > Settings > Applications > Manage applications > app name > Force Close.

Ответы [ 2 ]

1 голос
/ 04 октября 2010

I думаю ActivityManager просто убивает процесс хостинга, поэтому вы не сможете получить ни одно событие / сообщение / предупреждение.Чтобы проверить, вы можете создать приложение с одним Activity , которое сообщит вам, если вызывается onDestroy , и далее, если вызывается isFinishing .

Путь к Menu > Settings > Applications > Manage applications > app name > Force Close в источнике, если это помогает, это:

Управление приложениями:
https://android.googlesource.com/platform/packages/apps/Settings/+/froyo-release/src/com/android/settings/ManageApplications.java

InstalledAppDetails:
https://android.googlesource.com/platform/packages/apps/Settings/+/froyo-release/src/com/android/settings/InstalledAppDetails.java

ActivityManager.forceStopPackage:
https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/java/android/app/ActivityManager.java

ActivityManagerNative.forceStopPackage:
https://android.googlesource.com/platform/frameworks/base/+/froyo-release/core/java/android/app/ActivityManagerNative.java

Как только он получает собственный уровень, он передает егоСервис, который делает грязную работу.Опять же, я бы предположил, что это просто останавливает процесс, но это предположение, и я не знаю, где находится другая сторона нативного интерфейса в источнике, чтобы проверить (хотя это где-то, если вы ткнетевокруг и хочу знать наверняка).

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

0 голосов
/ 04 октября 2010

Я довольно новичок здесь и в программировании на Android в целом, так что простите, если это не совсем правильно.Тем не менее, я понимаю, что диалоговое окно «Приложение не отвечает» (ANR) отображается только в том случае, если приложение a) не отвечает или b) выдало исключение, которое не было перехвачено.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...