获取进程的PID以杀死它,而不知道它的全名

use*_*653 12 java eclipse android kill process

我正在编写一个Android应用程序.现在我要去应用程序应该杀死进程的部分.但我不知道它的全名或它的PID.我知道命令:

android.os.Process.killProcess(Pid)
Run Code Online (Sandbox Code Playgroud)

android.os.Process.getUidForName("com.android.email")
Run Code Online (Sandbox Code Playgroud)

但我的问题是我不知道该过程的全名.

这是一个本机代码进程,所以不像com.something.something

这个过程是 /data/data/com.something.something/mybinary

但它运行的命令如

/data/data/com.something.something/mybinary -a 123 -b 456
Run Code Online (Sandbox Code Playgroud)

因为这个我不能用

android.os.Process.getUidForName("/data/data/com.something.something/mybinary")
Run Code Online (Sandbox Code Playgroud)

AAn*_*kit 7

您可以使用:

ActivityManager manager = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);
 List<RunningAppProcessInfo> services = manager.getRunningAppProcesses();
 String service1name = services[1].processName;
Run Code Online (Sandbox Code Playgroud)

您可以获取所有正在运行的进程的程序包名称,检查要终止的程序包,通过service.pid选择该进程获取进程ID.

并致电:

android.os.Process.killProcess(service.pid);
Run Code Online (Sandbox Code Playgroud)