Убивать другой процесс/приложение программно

Я не хочу обсуждать, может ли процесс быть убит пользователем, нужно ли это делать так или иначе.

Я просто хочу знать, как почти каждый телефон Android-плееров получил "advanced task killer", который убивает процесс или как он отличается от опции force close (в настройках). Я пробовал много способов убить процесс, но все безрезультатно. Но когда я вижу эти "advanced task killer", я не могу понять, что с тобой не так.

Ответы

Ответ 1

Вы можете использовать метод killBackgroundProcesses() ActivityManager:

    ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
    am.killBackgroundProcesses(packageName);

Обратите внимание, что ваше приложение должно владеть разрешением KILL_BACKGROUND_PROCESSES. Таким образом, в AndroidManifest.xml вам необходимо включить:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />

Ответ 2

Попробуйте android.os.Process:

void killMyProcess() {
    Process.killProcess(Process.myPid());
}

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

Ответ 3

Предположим, что вы запустили действия в порядке A → B → C → D с помощью A в качестве основного и запуска.

Вы даже не можете убить свой прикладной процесс, вызвав метод Process.KillProcess(int pid) в своей деятельности D. Вам нужно убить каждую операцию D-C-B-A (в обратном порядке), чтобы убить процесс.

Невозможно убить другие процессы приложений.