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

Почему тот же вопрос снова

Этот вопрос задан около 100 раз на SO. Я спрашиваю об этом снова, потому что все ответы говорят this is not possible, но по крайней мере одно из приложений в Market делает это NQ Mobile Security. Я начал щедрость по 100 очков по аналогичному вопросу, но на него не было достаточно внимания. Если сообщество не принимает, я удалю вопрос.

Что делает приложение

Приложение показывает активность, когда пользователь пытается удалить его.

enter image description here

и выполняет некоторую обработку перед ее удалением

enter image description here

Что такое мой вопрос

Как запустить Activity или IntentService перед тем, как приложение удаляется пользователем, который ранее установил приложение на своем устройстве?

Ответ 2

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

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

Надеюсь, это поможет!

Ответ 3

Я не знаю, как это происходит в NQ Mobile Security application,

Но в общем случае я счел это невозможным (возможно, возможно, но я не смог найти способ),

Поскольку,

Когда вы регистрируете BroadcastReceiver для android.intent.action.PACKAGE_REMOVED в своем собственном приложении и когда приложение удаляется, зарегистрированный BroadcastReceiver был удален до того, как приложение будет удалено, поэтому его собственное событие удаления не будет получено этим BroadcastReceiver.

Ответ 4

Я знаю, что это старо, но я хочу дать этот ответ. Прослушивание собственной деинсталляции довольно просто. Вам просто нужно использовать двоичный файл, который вы выполняете и выполняете в фоновом режиме (с помощью команды nohup).

Этот двоичный файл может либо прослушиваться в PACKAGE_REMOVED-трансляции, либо вы можете регулярно проверять, сохраняется ли файл в/data/app/(эти файлы доступны для чтения в мире, список каталогов отключен, но вы знаете свое собственное имя пакета:)) Я не знаю, можно ли сделать второе решение без разряда батареи.