Я разрабатываю приложение для фильтрации logcat, сгенерированного андроидом. Я выполнил linux comand '/system/bin/logcat -b main -f/sdcard/logcat.txt'using getruntme.exec. для выполнения команды, но она выполняется в отдельном процессе, хотя я удаляю свое приложение, процесс продолжает работать. Есть ли способ предотвратить запуск в другом процессе.
По getruntme.exec, вы имеете в виду, что вы используете что-то вроде этого? (заимствованный отсюда):
import java.io.*;
public class TestExec {
public static void main(String[] args) {
try {
Process p = Runtime.getRuntime().exec("cmd /C dir");
BufferedReader in = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Тогда вы можете убить его с помощью p.destroy()
Нет. exec
запускает новый процесс, и это то, что он должен делать, и что вы хотите сделать, если вы запускаете внешнюю команду. Но он возвращает объект Process
который вы можете использовать для управления запущенным процессом.