(二十三)进程清理的方法

	/**
	 * Android将进程分为6个等级,它们按优先级顺序由高到低依次是: 1) 前台进程( FOREGROUND_APP) 2)
	 * 可视进程(VISIBLE_APP ) 3) 次要服务进程(SECONDARY_SERVER ) 4) 后台进程 (HIDDEN_APP) 5)
	 * 内容供应节点(CONTENT_PROVIDER) 6) 空进程(EMPTY_APP)。注意:注意值越大说明进程重要程度越低。
	 */
	public void ClearMemoryAction() {
		// final String TAG = "clearMemory";
		ActivityManager am = (ActivityManager) context
				.getSystemService(Context.ACTIVITY_SERVICE);
		List<RunningAppProcessInfo> runnningAppProcessInfo = am
				.getRunningAppProcesses(); // 获得正在运行的进程
		if (runnningAppProcessInfo != null) {
			for (int i = 0; i < runnningAppProcessInfo.size(); ++i) {
				RunningAppProcessInfo appProcessInfo = runnningAppProcessInfo
						.get(i);

				// 一般数值大于RunningAppProcessInfo.IMPORTANCE_VISIBLE的进程都是非可见进程,也就是在后台运行着
				if (appProcessInfo.importance > RunningAppProcessInfo.IMPORTANCE_VISIBLE) {
					String[] packagesList = appProcessInfo.pkgList; // 运行在该进程下的所有应用程序包名,一个进程里可以运行一个或多个应用程序
					for (int j = 0; j < packagesList.length; ++j) {
						am.killBackgroundProcesses(packagesList[j]);
						Log.i(TAG, "杀死的进程的包名" + packagesList[j]);
					}
				}
			}
		}

	}

	public int getProcessCount() {
		// final String TAG = "clearMemory";

		ActivityManager am = (ActivityManager) context
				.getSystemService(Context.ACTIVITY_SERVICE);
		List<RunningAppProcessInfo> runnningAppProcessInfo = am
				.getRunningAppProcesses(); // 获得正在运行的进程
		int count = 0;
		if (runnningAppProcessInfo != null) {
			for (int i = 0; i < runnningAppProcessInfo.size(); ++i) {
				RunningAppProcessInfo appProcessInfo = runnningAppProcessInfo
						.get(i);
				// 一般数值大于RunningAppProcessInfo.IMPORTANCE_VISIBLE的进程都是非可见进程,也就是在后台运行着
				if (appProcessInfo.importance > RunningAppProcessInfo.IMPORTANCE_VISIBLE) {
					String[] packagesList = appProcessInfo.pkgList; // 运行在该进程下的所有应用程序包名,一个进程里可以运行一个或多个应用程序
					for (int j = 0; j < packagesList.length; ++j) {
						count++;
					}
				}
			}
		}
		Log.i(TAG, "杀死的进程的数目" + count);
		return count;
	}

  

时间: 2024-10-09 13:06:16

(二十三)进程清理的方法的相关文章

Java二十三设计模式之------工厂方法模式

一.工厂方法模式 工厂方法模式有三种 1.普通工厂模式:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建.首先看下关系图: 举例如下:(我们举一个发送邮件和短信的例子) 首先,创建二者的共同接口: public interface Sender { public void Send(); } 其次,创建实现类: public class MailSender implements Sender { @Override public void Send() { System.out.pr

winform学习日志(二十三)---------------socket(TCP)发送文件

一:由于在上一个随笔的基础之上拓展的所以直接上代码,客户端: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net.Sockets; using Sys

转:linux守护进程的启动方法

Linux 守护进程的启动方法 作者: 阮一峰 日期: 2016年2月28日 "守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问题的由来 Web应用写好后,下一件事就是启动,让它一直在后台运行. 这并不容易.举例来说,下面是一个最简单的Node应用server.js,只有6行. var http = require('http'); http.createServer(function(req, res)

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示 算法系列之二十三离散傅立叶变换之音频播放与频谱显示 导语 什么是频谱 1 频谱的原理 2 频谱的选择 3 频谱的计算 显示动态频谱 1 实现方法 2 杂项说明 结果展示 导语 频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很多人着迷.在上一篇对离散傅立叶变换介绍的基础上,本篇就进一步介绍一下频谱是怎么回事儿,下一篇继续介绍

从零开始学android&lt;RatingBar评分组件.二十三.&gt;

如果现在用户要对某个应用程序打分往往会使用图所示的组件,通过选择的"五角星"的个数来决定最终的打分成绩 这样的功能在Android之中,可以使用RatingBar组件实现,使用此组件可以方便用户的输入,而且很直观,RatingBar类的定义结构如下: java.lang.Object ? android.view.View ? android.widget.ProgressBar ? android.widget.AbsSeekBar ? android.widget.RatingBa

全栈JavaScript之路( 二十三 )DOM2、DOM3, 涉及XML命名空间的扩展(一)

<!DOCTYPE html> <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"> <head> <title>Example XHTML page</title> </head> <body> <s:svg xmlns:s="http://www.w3.org/2000/svg" version="1.1&

【管理心得之二十三】道是道,非常道。名可名,非常名。

场景再现 ====================== {一次PMP社团活动} 主持人   :在坐的各位,有谁自己动手煮过饺子或面条?请举手示意. 主持人   :真不少呀!那么把饺子或面条下锅之后,水沸腾.向外溢出时,你会怎么做? 80%回答道:加冷水 主持人   :为什么加冷水? 80%回答道:冷水 可以防止水沸腾,防止溢出. 主持人   :这是唯一方法吗? 20%回答道:还可以把火拧小,控制火温. 主持人   :这个方法似乎更方便,为什么刚开始的作答不是后者呢? ==============

终止imp/exp和expdp/impdp进程运行的方法

终止imp/exp和expdp/impdp进程运行的方法作者:孤风一剑   发布:2013-08-22 17:37   栏目:数据库开发   点击:2,613次   抢沙发  一.停止EXP/IMP优化速度可以直接KILL 进程,但先要KILL 父进程,然后KILL子进程,只KILL子进程,EXP/IMP还会在后台执行的样例:ps -ef |grep imp 查询到pid,kill -9 pid .kill -9 ppid,就可以了 二.停止EXPDP/IMPDP这里就不能简单的用KILL进程来

angular学习笔记(二十三)-$http(1)-api

之前说到的$http.get和$http.post,都是基于$http的快捷方式.下面来说说完整的$http: $http(config) $http接受一个json格式的参数config: config的格式如下: { method:字符串 , url:字符串, params:json对象, data:请求数据, headers:请求头, transformRequest:函数,转换post请求的数据的格式, transformResponse:函数,转换响应到的数据的格式, cache:布尔