首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

Android项目实战-手机卫士32-给清算进程添加一个Widget

2013-10-25 
Android项目实战--手机卫士32--给清理进程添加一个Widget上一次,我们已经完成了当用户锁屏的时候,就清理一

Android项目实战--手机卫士32--给清理进程添加一个Widget

上一次,我们已经完成了当用户锁屏的时候,就清理一下内存,那么今天,人们就把清理内存的这个功能给加到Widget里面去,

首先,先给大家讲一下Widget,widget就是运行在桌面上的小部件啦,由于运行在不同桌面(Android 的桌面有很多,如launch, 还有小米的米UI还有其他的定制机的呢)上,它的生命周期都会有所不同的,所以我这里就不说出来混淆大家啦,大家可以自己重写它里面的方法,观察一下就知道的啦

但是,要告诉大家,Widget第一次创建的时候,都会调用onEnable方法,然后,当桌面上已经没有这个Widget的时候,那就会调用onDisabled方法

好,下面先来看看,我们要做成的效果

Android项目实战-手机卫士32-给清算进程添加一个Widget  Android项目实战-手机卫士32-给清算进程添加一个Widget

这个界面比较的难看,大家可以自己定义一个好看的界面,这样子,看起来变好很多的啦

要把我们一键清理这个功能做成一个Widget,其实也很简单的

首先,我们就要写一个类ProcessWidget,来继承AppWidgetProvider,其实这个AppWidgetProvider它也是继承了BroadcastReceiver的,也就是说,它也是一个广播接收者来的,既然是一个广播接收者,那么,肯定就是要到AndroidMainfest里面注册它的啦

但是在注册之前,我们还有一件事要处理的,那就是在xml目录下面,定义一个xml文件,来指定一些Widget的信息

process_widget_info.xml

package com.xiaobin.security.receiver;import android.appwidget.AppWidgetProvider;import android.content.Context;import android.content.Intent;import com.xiaobin.security.service.UpdateWidgetService;public class ProcessWidget extends AppWidgetProvider{private Intent intent;@Overridepublic void onEnabled(Context context){super.onEnabled(context);//开启服务intent = new Intent(context, UpdateWidgetService.class);context.startService(intent);}@Overridepublic void onDeleted(Context context, int[] appWidgetIds){super.onDeleted(context, appWidgetIds);//停止服务intent = new Intent(context, UpdateWidgetService.class);context.stopService(intent);}}

上面我说过,不同的桌面,Widget的生命周期是有可能不同的,而且我上面也说啦,在Android2.3的模拟器里面,Widget显示是有问题的,我花了很长时间,发现,其实它是没有执行onEnable这个方法的,也就是说在Android2.3这个模拟器里面,它的生命同期是没有onEnable的,这应该是模拟器的一个bug来的,一般不可能会没有onEnable方法的,所以我们就要onEnable方法开启服务,当widget删除的时候,关闭服务


好啦,就这样子,我们的这个添加Widget的功能就完成的啦,那么我们的进程管理也完成的啦,还有很多的细节和优化,大家可以自己去做一下,下一次,我们就进行的流量管理的功能啦


最后,和大家说一下

为了方便大家的交流,我创建了一个群,这样子大家有什么疑问也可以在群上交流

群号是298440981



今天源码下载





热点排行