码迷,mamicode.com
首页 > 系统相关 > 详细

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

时间:2014-12-02 15:10:04      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:android   blog   io   ar   java   for   on   div   log   

	/**
	 * 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;
	}

  

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

标签:android   blog   io   ar   java   for   on   div   log   

原文地址:http://www.cnblogs.com/fuyanan/p/4137350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!