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

#android #process #notifications #kill

#Android #процесс #уведомления #убить

Вопрос:

Я копался в Интернете в поисках хорошего, андроидного решения для этой конкретной проблемы, но не нашел его, так что вот я, публикую свой первый вопрос в StackOverflow.

Чтобы уточнить мою проблему, у меня есть полноценная служба aidl, к которой привязываются некоторые другие процессы. Мой сервис выделит некоторые ресурсы для каждого процесса, подключающегося к нему, и я хочу сделать это утверждение жирным, выделение ресурсов производится для процесса, я делаю какое-то отслеживание сеанса, где getCallingPid() и getCallingUid() играют роль идентификаторов сеанса.

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

Одно из решений, которое я нашел несколько осуществимым, — это просто опросить ActivityManager.getRunningAppProcesses и вычислить разницу между текущими и предыдущими снимками, но этот метод выглядит действительно грязным.

Кто-нибудь может предложить какой-нибудь лучший способ сделать это? Я был бы очень благодарен!

Спасибо,

Giorgi

Ответ №1:

Насколько мне известно, Android не сообщит вам, когда процессы будут завершены.

Я подозреваю, что единственный способ — получать список запущенных приложений каждые x секунд или минут и таким образом отслеживать приложения. Я думаю, это то, что вы уже предложили в вопросе.

Это не красиво, но, вероятно, это один из единственных способов сделать это.

Комментарии:

1. Спасибо, просто хотел, чтобы кто-нибудь подтвердил это, прежде чем внедрять эту вещь таким образом.