Android下如何杀死后台进程
http://www.cnblogs.com/xiaoyao1730/archive/2011/10/22/2221313.html
查了下官网,android.os.Process.killProcess(appProcessInfo.pid);只能杀死自己所创建的进程,其它进程是杀不掉的,要用到另外一个方法activityManager.killBackgroundProcesses(processName);,同是权限也要加上
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
以下是我的测试代码
public class ListViewActivity extends Activity {
/** Called when the activity is first created. */
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
killAll(getApplicationContext());
}
});
}
public static void killAll(Context context) {
//获取一个ActivityManager对象
ActivityManager activityManager = (ActivityManager) context
.getSystemService(Context.ACTIVITY_SERVICE);
//获取系统中所有正在运行的进程
List<RunningAppProcessInfo> appProcessInfos = activityManager
.getRunningAppProcesses();
//获取当前activity所在的进程
String currentProcess=context.getApplicationInfo().processName;
//对系统中所有正在运行的进程进行迭代,如果进程名不是当前进程,则Kill掉
for (RunningAppProcessInfo appProcessInfo : appProcessInfos) {
String processName=appProcessInfo.processName;
if (!processName.equals(currentProcess)) {
System.out.println("ApplicationInfo-->"+processName);
activityManager.killBackgroundProcesses(processName);
System.out.println("Killed -->PID:"+appProcessInfo.pid+"--ProcessName:"+processName);
}
}
}
}
注意进程的过滤,以免把主要的进程也结束了
更多相关文章
- Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
- 一款霸榜 GitHub 的开源 Linux 资源监视器!
- Android修改、设置锁屏密码
- 在Ubuntu16.04下编译FFmpeg4.2.3
- android 调用系统自带的设置时间日期对话框
- andriod 中下载图片到sdcard中例子
- Application Fundamentals--Processes and Threads(进程与线程)
- Android(安卓)Studio 模拟器 adb shell 进入 root 调试模式
- android 读取系统通讯录