gpt4 book ai didi

android - 如何杀死Android应用程序启动的logcat进程?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:40 25 4
gpt4 key购买 nike

我的 Android 应用程序在服务启动时执行以下代码:

...
Process process = Runtime.getRuntime().exec("logcat -v time -s " + arg);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
...

如您所见,我启动了 logcat 进程来监听日志。不幸的是,停止服务并没有停止 logcat,在几次启动后我得到:

app_125   4782  144   137124 30584 ffffffff 00000000 S com.wefi.agnt.ui
app_125 4796 4782 1028 592 ffffffff 00000000 S logcat
app_125 4839 4782 1076 640 ffffffff 00000000 S logcat
app_125 4842 4782 952 516 ffffffff 00000000 S logcat
app_125 4845 4782 896 460 ffffffff 00000000 S logcat
app_125 4848 4782 900 464 ffffffff 00000000 S logcat
app_125 4851 4782 876 440 ffffffff 00000000 S logcat
shell 4852 171 788 336 c00cc7e4 afd0c78c S /system/bin/sh
shell 4853 4852 944 332 00000000 afd0b83c R ps
app_123 11189 144 114484 18908 ffffffff 00000000 S com.mspot.android.moviesClub.att

... logcat 进程列表。我怎样才能杀死他们?

任何想法

最佳答案

因为您拥有 Process 的句柄例如,您应该能够使用 process.destroy()当您停止服务时。 Logcat 进程独立于您的应用程序运行,因此它们将在您的应用程序的 Service 之后继续运行。除非您终止它们,否则将停止运行。

如果您只想在测试应用程序时清理设备上的进程,您可以运行 adb shell在设备上获得 shell 提示符,然后使用 kill <PID>终止进程。

编辑:

Process文档还指定您应该使用 ProcessBuilder设置和运行流程:

ProcessBuilder pb = new ProcessBuilder("logcat", "-v", "time", "-s", arg);
pb.redirectErrorStream(true);
Process process = pb.start();
...

关于android - 如何杀死Android应用程序启动的logcat进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12940827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com