Launcher在android中是一个启动器,如果想定制界面,就得修写workspace和应用程序界面布局,workspace加载程序是通过viewGroup添加view.下面是我添加的功能总结:
第一:添加数据库,要注意几个问题,数据库存储什么数据,包括应用的序列、位置信息、应用程序名称、包名、Intent信息(封装包信息+activity信息,作为索引值)、应用分类子段等,实现添加、删除、查询、修改功能.
在Launcher应用安装原是通过广播来实现的,LauncherModel中onReceive接收广播,添加、删除、修改数据库功能都在这里面实现;
要注意在实际情况中广播传过来的是包名,而这个不是唯一值,解决方法就是使用数组存放包名,然后循环执行删除功能.
在删除时记时要修改序列值,实现就是删除一条,使用递减算法修改序列值,后面有待优化.
第二:程序安装在SD中解决安装,因现有sd的分区和系统挂在一起,每次插拔,在mnt/asec/应用数据就会丢失,使用广播,sd拔时执行删除和修改数据库功能,保证数据的正确性。
第三:当系统语言更改时,使用广播接收并处理修改title内容.
第四:如何使用内容观察者,使用handler实
现于主线程交互,监听数据库数据的完整性,因有些应用会删除自己的信息,从而创建一个快捷方式信息.解决方案:找到差异值,然后修改数据库数据,用递减算法修改数据库.
总结操作数据库无非使用ContentResolver对象来执行delete、query、update等,创建数据库的类是LauncherProvider.java.