报io EPIPE (Broken pipe)是因为没有写权限
package com.itant.processkiller;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.List;
import android.app.Activity;
import android.app.ActivityManager;
import android.os.Bundle;
public class MainActivity extends Activity {
private Process mProcess;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int myPid = android.os.Process.myPid();
try {
mProcess = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(mProcess.getOutputStream());
ActivityManager mActivityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningAppProcessInfo> mRunningProcess = mActivityManager.getRunningAppProcesses();
for (ActivityManager.RunningAppProcessInfo processInfo : mRunningProcess) {
if (myPid != processInfo.pid) {
os.writeBytes("kill " + processInfo.pid + "\n");
os.flush();
}
}
os.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (mProcess != null) {
try {
mProcess.getInputStream().close();
mProcess.getOutputStream().close();
mProcess.destroy();
mProcess = null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}