码迷,mamicode.com
首页 > 其他好文 > 详细

仿360一键清理实现(二)

时间:2014-07-29 15:02:48      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:360   android 4.0   仿360   一键清理   

---------------------------------------------------------------------

编译环境:Android 4.0

测试环境:Android 4.2.2模拟器

屏幕分辨率:480*800

作者:疯狂小强

注意:

1.资源采集于网上,如有侵权请及时联系,以便处理。

2.代码仅用于学习交流,请勿商业化。

--------------------------------------------------------------------


仿360一键清理实现(一)已经介绍了“一键清理”过程的实现,本节介绍白名单编辑。


先上效果图:

bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

关键就是获取APP的信息

获取到信息后就简单了。

代码如下:

private List<AppItem> getAppItem()
	{
		List<AppItem> appList = new ArrayList<AppItem>(); //用来存储获取的应用信息数据
		List<AppItem> appListSystem = new ArrayList<AppItem>();
		List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
		for(int i=0;i<packages.size();i++) 
		{
			PackageInfo packageInfo = packages.get(i);
			//非系统应用加上下面条件
			//packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0
			if(!packageInfo.packageName.equals("android")&&!packageInfo.packageName.equals("com.tang.demo360"))
			{
				AppItem item =new AppItem();
				item.setAppName(packageInfo.applicationInfo.loadLabel(getPackageManager()).toString());
				item.setPkgName(packageInfo.packageName);
				item.setIcon(packageInfo.applicationInfo.loadIcon(getPackageManager()));
				if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0)
				{
					appList.add(item);
				}
				else
				{
					appListSystem.add(item);
				}
			}
		}
		appList.addAll(appListSystem);
		return appList;
	}
packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0是判断是否是系统应用的条件


启动一个线程负责获取数据:

new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				data = getAppItem();
				handler.sendEmptyMessage(DATA_OK);
			}
		}).start();

并且用handler通知主线程更新UI.

点击ListItem后会加入白名单或者是从白名单中移除:

public class MSaveList extends ArrayList<String>
{
	private SharedPreferences share =null;
	public MSaveList (SharedPreferences share)
	{
		this.share = share;
	}
	public void save()
	{
		String temp = "";
		for(int i = 0;i<size(); i++)
		{
			temp =temp+get(i)+"/";
		}
		Log.i("AAA", "save:"+temp);
		SharedPreferences.Editor editor = share.edit();
		editor.putString("white_list", temp);
		editor.commit();
	}
	
	public List<String> load()
	{
		String temp = share.getString("white_list", "");
		if(temp.equals(""))
			return null;
		String s[] = temp.split("/");
		Log.i("AAA", "load:"+temp);
		for(int i = 0;i<s.length;i++)
		{
			add(s[i]);
		}
		return this;
	}
}



仿360一键清理实现(二),布布扣,bubuko.com

仿360一键清理实现(二)

标签:360   android 4.0   仿360   一键清理   

原文地址:http://blog.csdn.net/tangnengwu/article/details/38232601

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