Убивать другой процесс/приложение программно
Я не хочу обсуждать, может ли процесс быть убит пользователем, нужно ли это делать так или иначе.
Я просто хочу знать, как почти каждый телефон 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 (в обратном порядке), чтобы убить процесс.
Невозможно убить другие процессы приложений.