Android kill其它进程

酆阳煦
2023-12-01

Android kill其它进程

private void killService() {
    ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
    manager.killBackgroundProcesses("com.googleplay.service");
    List<RunningAppProcessInfo> list = manager.getRunningAppProcesses();
    for (int i = 0; i < list.size(); i++) {
        String process = list.get(i).processName;
        if (process.equals("com.google.service")) {
            try {
                Runtime.getRuntime().exec("kill " + list.get(i).pid);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;
        }
    }
}

System.exit(int)

int 0 正常退出, 其它值 异常退出, 退出自己进程

Process.killProces(int pid)

可以kill 自己, 但是kill别人不一定成功

会有Process : Sending signal. PID: 16817 SIG: 9 但是不一定kill成功

1: 杀死自己进程的方法

android.os.Process.killProcess(android.os.Process.myPid());

2: 杀死自己进程的方法

java.lang.System.exit(int status)
终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
该方法调用 Runtime 类中的 exit 方法。该方法永远不会正常返回。
调用 System.exit(n) 实际上等效于调用:
Runtime.getRuntime().exit(n)

3: 杀死自己进程的方法

int pid = android.os.Process.myPid();
String command = "kill -9 "+ pid;

try {
    Runtime.getRuntime().exec(command);
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

4:杀死别人进程的方法(不能杀死自己)

ActivityManager.killBackgroundProcesses
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
                activityManager.killBackgroundProcesses($packageName);

需要加入权限:

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

5:杀死别人进程的方法(不能杀死自己)

ActivityManager.restartPackage
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
activityManager.restartPackage($packageName);

需要加入权限:

<uses-permission android:name="android.permission.RESTART_PACKAGES"/>
 类似资料: