Остановка java.lang.Process

  1. private void stopProcess(String strMyProcess) {
  2.     String[] output = null;
  3.     try {
  4.         java.lang.Process process = Runtime.getRuntime().exec("ps");//parse output
  5.         process.waitFor();
  6.         output = readFromProcess(process).split("\\n");
  7.     } catch (IOException e) {
  8.         Log.e("Stop process", "Create process or open stream", e);
  9.     } catch (InterruptedException e) {
  10.     }
  11.     for (int i = 0; i < output.length; i++) {
  12.         if (output[i].contains(strMyProcess)) {
  13.             int pid = Integer.parseInt(output[i].split("\\s+")[1]);
  14.             try {
  15.                 java.lang.Runtime.getRuntime().exec("kill " + pid);
  16.             } catch (IOException ex) {
  17.                 Log.e("Stop process", "Error in kill command", ex);
  18.             }
  19.         }
  20.     }
  21. }
  22.  
  23. private String readFromProcess(java.lang.Process process) {
  24.     String result = "", line = "";
  25.     BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));
  26.     try {
  27.         while ((line = br.readLine()) != null) {
  28.             result += (line + "\n");
  29.         }
  30.     } catch (IOException e) {
  31.         Log.e("readFromProcess", "", e);
  32.     }
  33.     return result;
  34. }
Описание
Останавливает процесс, запущеный от имени приложения, пользователя. Не остановит процесс запущенный с правами root
Параметры
String strMyProcess - имя процесса, который нужно остановить.

Реклама

Мы в соцсетях

tw tg yt gt