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

1

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

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

Теги:
kill
taskkill

2 ответа

1
Лучший ответ

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

Путь к Menu > Settings > Applications > Manage applications > app name > Force Close в источнике, в случае его использования, следующий:

ManageApplications:
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
    Большое спасибо человеку за это огромное количество информации! что я пытаюсь сделать, это запустить «приложение B», как только «приложение A» принудительно закрыто, как вы думаете, это может быть достигнуто в Android? : S
  • 1
    @Shatazone: Я искренне надеюсь, что то, что вы хотите, невозможно. Вредоносные программы будут использовать эту технику в одно мгновение.
Показать ещё 2 комментария
0

Я довольно новый здесь и для Android-программирования в целом, поэтому простите меня, если это не совсем правильно. Тем не менее, я понимаю, что диалог Application Not Responseing (ANR) отображается только в том случае, если ваше приложение является либо a) неактивным, либо b) вызвало исключение, которое не было обнаружено.

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

  • 0
    спасибо commie64, но это не тот случай, который я имел в виду ... точно так же, как диспетчер задач может уничтожать запущенные процессы в windows, вы также можете уничтожать запущенные приложения в Android независимо от их фактического состояния (заморожено или работает)
  • 0
    Прошу прощения, в моем стремлении ответить я неправильно понял ваш вопрос. Я не уверен, что этикета здесь, я должен удалить свой ответ? Кроме того, я предполагаю, что этот метод, на который вы ссылаетесь, в основном имитирует то, что делает ANR. Поскольку у ANR не было бы возможности уведомить замороженное / сбойное приложение, я не верю, что оно вызывает какие-либо методы очистки перед его удалением. Так что я думаю, что и этот метод не подходит. Опять же, это всего лишь предположение, извините.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню