Ответ 1
Вы можете отправить сигнал, используя:
Process.sendSignal(pid, Process.SIGNAL_KILL);
Чтобы полностью убить процесс, рекомендуется вызвать:
ActivityManager.killBackgroundProcesses(PackageName)
перед отправкой сигнала.
Прежде всего, я знаю, что плохо использовать диспетчер задач /killer в Android и все такое, но мне было интересно, как диспетчеры задач вроде Advanced Task Killer
убивают другие приложения?
Я хотел разработать простое приложение, которое сделало бы это, только для обучения.
Я попытался выполнить команду Linux kill pid из моего приложения, но это не сработало, возможно, для этого требуется root?
Итак, как это сделать из моего приложения? У меня есть простая ListActivity, которая показывает текущие запущенные задачи и когда пользователь нажимает на элемент, который я хочу убить.
Вы можете отправить сигнал, используя:
Process.sendSignal(pid, Process.SIGNAL_KILL);
Чтобы полностью убить процесс, рекомендуется вызвать:
ActivityManager.killBackgroundProcesses(PackageName)
перед отправкой сигнала.
slayton имеет хороший ответ в этом вопросе. Я добавлю эту деталь к его ответу:
- когда вы используете ActivityManager.killBackgroundProcesses(PackageName)
, вы не можете убить процесс переднего плана.
Я видел эти ссылки с открытым исходным кодом в K_Anas'answer на этот вопрос:
- репозиторий github
- code.google
попробуйте это,
android.os.Process.killProcess(pid)
который будет работать...
1- Добавить в манифест
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>
2 - В коде
Runtime.getRuntime().exec("adb shell killall com.example.app");
Примечание.. Ваше приложение должно иметь доступ к системе/приложению adb shell (root).