android sevice系列之 StatusBarService
来源:互联网 发布:网络控制器驱动安装 编辑:程序博客网 时间:2024/05/22 06:48
2011/3/21 23:56
Android状态栏管理
android的状态栏:
在android中,状态栏不属于某个应用程序,而是系统的一部分,是通过StatusBarService来管理的。
Android通过StatusBarPolicy及StatusBarService来管理状态栏。
一. StatusBarPolicy 负责状态栏显示的策略管理
Android中状态栏上有很多图标,这些图标什么时候显示什么时候不显示?这些都是 StatusBarPolicy来管理的。
StatusBarPolicy的构造函数里初始化了好几个图标,如时间icon,闹钟icon,信号栏icon等。默认时有很多图标是不显示的,需要显示时再进行更新。StatusBarPolicy调用 registerReceiver注册了感兴趣的intent,当感兴趣的intent发生时,对图标进行更新。例如,设置一个闹钟后,闹钟模块会发出一个叫做Intent.ACTION_ALARM_CHANGED的intent,然后StatusBarPolicy接收到此intent,继而更新状态栏上的闹钟图标。
见如下的代码:
二. StatusBarService
正如上面看到的,StatusBarPolicy只是一个策略管理,实际的功能是StatusBarService来实现的。StatusBarService初始化时初始化了一个用于显示statusbar 的StatusBarView。StatusBarView里面定义了icon名字,的显示顺序,对应的png图等。代码如下:
mRightIconSlots 是一个String型数组,里面记录了状态栏上各个图标的名字。StatusBarPolicy就是根据这个名字找到相应的icon,调用setIcon设置其图标。mRightIconSlots的值从/frameworks/base/core/res/res/values/arrays.xml 中获得,现摘取片段如下:
由此已经可以看出要增加一个系统级图标,应该在此xml中增加相应的item,然后在StatusBarPolicy中做相应修改即可。
- android sevice系列之 StatusBarService
- Android FrameWork Service 之 StatusBarService
- Android FrameWork Service 之 StatusBarService
- Android FrameWork Service 之 StatusBarService
- Android - - - - - - Sevice
- Android基础总结之六:Sevice
- SSH框架之Sevice
- android Sevice详解
- 关于android中的Sevice
- sevice
- sevice框架
- Android系列之HelloWorld
- Android 系列之Intent
- Android系列之Intent
- Android系列之Activity
- Android系列之广播
- Android系列之Fragment
- Android系列之ActionBar
- Bundle的构建策略
- GStreamer显示图片
- android 模拟器mksdcard创建SD卡
- Linux:设置默认从字符界面启动系统
- dreamweaver8
- android sevice系列之 StatusBarService
- SQL Server -identity列
- Linux命令温故而知新:tar
- 累并快乐着的周末
- Invalid byte 1 of 1-byte UTF-8 sequence 转自:http://kevin-qingzhan.javaeye.com/blog/473994
- SQL Server -数据库基本语法的总结
- c++参数传递和返回值
- C语言输入输出格式符
- 计算几何