电源管理器Widget(系统服务的一些开关)

 

一:功能及图片说明:

   

   主要开启系统:蓝牙,wifi,静音,gps,移动数据,重力感因,屏幕亮度,当前电量,设置的进入等。

二:实现原理:

    1.开始加载的时候,根据系统当前各个模块的状态加载对应的图片,点击图片做打开或关闭服务,对于多状态的改变为下一个状态,并作相应的操作。 对于外界改变时,该软件也要检测,作相应的改变。对于动态检测外界的改变有三种方法:

     a)有些服务改变会发意图(Intent),例如蓝牙、wifi、移动数据等,我们只要在配置文件里注册,接受意图,作相应的更新处理。

     b)有些模块是通过发送广播通知状态改变的,电量,声音的类型,我们只要配置和接收广播,做相应的更新即可。

     c)部分服务就是数据库里对应的一个字段,重力感应,gps等,我们只需要注册数据库监听类(ContentObsever),监听对应的字段,在该字段改变时做对应的更新操作。

  2.问题及改进:

     问题:a)移动数据操作比较慢,也没有意图或广播来通知当前状态是否改变结束,等服务操作完才会更新图片,用户点击后,发现图片没变,连续点击,点击一次导致服务的改变一次,服务完成比较慢,导致图片和服务不同步。

             b)android的系统更新太快,在android的4.0.1之前,设置下的静音就是一个选择框,就两种状态,到4.0.3,变成一个列表,有三种选择,对应代码就要做改变才能保持一致。

三:需要知识:

     该widget是方便用户可以再桌面直接对一些设置下的服务直接开启,所以熟悉settings模块里代码及对应服务的处理流程,数据库对应字段的含义。

posted @ 2012-09-12 14:19  追梦一生  阅读(533)  评论(0编辑  收藏  举报