细说ItemInfo
要理解ItemInfo,就要先理解桌面有哪几种东西,即有哪几种Item。
- 小工具:就是AppWidget,时钟小工具,天气小工具,等等。
- 快捷方式:快速启动应用的图标,一个应用可以有多个重复的快捷方式,workspace和hotseat上的都是快捷方式
- 文件夹:可以把多个快捷方式放到一块的,用来分类,减少屏幕空间占用。
这些东西都一些共同的,可以抽象出来的东西,有自己的宽度和高度,都有所在的位置和第几等等,而ItemInfo就是抽象出来的东西,打开ItemInfo.java,其中包含的就是这些特征,然而,最关键的是ItemInfo对象和数据库记录是一一对应的。其中有个id的成员,代表的就是数据库中ID。
对于不同的item,ItemInfo也有不同的子类,小工具对应的是LauncherAppWidgetInfo,他增加了小工具的信息(查android文档:AppWidgetProviderInfo);快捷方式对应的是ShortcutInfo,他增加了启动一个Activity所需的Intent信息;文件夹对应的是FolderInfo,他增加了文件夹是否打开的标签,文件夹内图标的信息等等。
ItemInfo的成员有几个值得说说:
- container:表明图标是放在哪里的,是放在Workspace还是Hotseat,还是文件夹里面的。如果是放在Workspace上的,那么值是LauncherSettings.Favorites.CONTAINER_DESKTOP,如果是放在文件夹里面的那么container的值就是文件夹FolderInfo的id。
- cellX,cellY:表明所在屏幕的哪个位置,cellY表明第几行,cellX表明第几列。如果是小工具占用多行多列的情况,就记录他左上角的位置。
- spanX,spanY:宽度和高度,快捷方式和文件夹宽高都是1,小工具的宽高就要看具体情况了。
- title:标题,显示应用的名字,文件夹的名字,小工具的话就不需要这个属性了。
- itemType: 数据库里保存的表明这个ItemInfo具体是哪种类型的ItemInfo,启动的时候好生成具体的ItemInfo子类对象。
ItemInfo就这么多了,如果你自己看类的继承关系的话,就知道ItemInfo还有几个子类,比如AppInfo,PendingAddItemInfo,我暂时还没有搞清楚这些类的使用流程,等以后搞清楚了再加上来吧。
再说几个关于数据库的类,方便以后找代码:
- LauncherProvider: 桌面信息的ContentProvider。
- LauncherSettings:存了数据库相关的常量,字段名,字段常量等等。
- DatabaseHelper: LaucherProvider的内部类,继承自SQLiteOpenHelper,数据库表的创建就是在它的onCreate方法里完成的。
细说ItemInfo相关推荐
- Launcher3-桌面布局+主要的类+启动流程
一.launhcer3桌面布局 二.launcher3主要的类 LauncherModel: BubblTextView: DragController: LauncherAppState: Drag ...
- 匹夫细说C#:委托的简化语法,聊聊匿名方法和闭包
0x00 前言 通过上一篇博客<匹夫细说C#:庖丁解牛聊委托,那些编译器藏的和U3D给的>的内容,我们实现了使用委托来构建我们自己的消息系统的过程.但是在日常的开发中,仍然有很多开发者因为 ...
- 细说Java主流日志工具库
细说 Java 主流日志工具库 日志框架 java.util.logging (JUL) Log4j Logback Log4j2 Log4j vs Logback vs Log4j2 日志门面 co ...
- 8天学通MongoDB——第二天 细说增删查改
2019独角兽企业重金招聘Python工程师标准>>> 看过上一篇,相信大家都会知道如何开启mongodb了,这篇就细说下其中的增删查改,首先当我们用上一篇同样的方式打开mongod ...
- 京瓷1020MFC显示J-05 11是什么意思_Gofair第11讲,细说谷歌系推广的产品优势和推广方式...
原标题:Gofair第11讲,细说谷歌系推广的产品优势和推广方式 外贸企业经过多年沉浮,一定都明白了:谷歌系推广,才是唯一靠谱的方式. 根据权威的statcounter数据显示,全球流量92%来自谷歌 ...
- 细说php--php学习必备
开发Web应用程序PHP是最理想的工具,易于使用.功能强大.成本低廉.高安全性.开发速度快且执行灵活.全书以实用为目标设计,包含PHP开发最主流的各项技术,对每一个知识点都进行了深入详细的讲解,并附有 ...
- 八天学会MongoDB:第三天 细说高级操作
今天跟大家分享一下MongoDB中比较好玩的知识,主要包括:聚合,游标. 相关文章: 八天学会MongoDB:第一天 基础入门 八天学会MongoDB:第二天 细说增删查改 一: 聚合 常见的聚合操作 ...
- 细说firewalld和iptables
在RHEL7里有几种防火墙共存:firewalld.iptables.ebtables,默认是使用firewalld来管理netfilter子系统,不过底层调用的命令仍然是iptables等. fir ...
- John细说PHP的验证码
细说php中的验证码类创建 我这里自己写了一个验证码类,我来演示一下怎么使用,我是菜鸟一枚,大神请略过.我来讲解一下它的使用方法,总共需要两步即可. 第一步: 下载我制作好的验证码类.下载地址:htt ...
最新文章
- ubuntu18.04虚拟机突然不能上网问题解决办法
- PriorityBlockingQueue用法
- 用scikit-learn学习K-Means聚类
- 蓝桥杯 平面切分(欧拉定理)
- Linux 进程间通讯详解一
- 倍福 在 vs 里 编程 是怎么做到的_截图里的文字要改,字体怎么做到一模一样?...
- mysql自动更新时间的触发器
- 关于spring注入
- getvalue函数怎么使用_单片机基础 —— 使用ADC读取电压值
- wincc版本升级_【西门子】WinCC V7.4 SP1:常规信息和安装 (较新).pdf
- LaTex学习笔记——中文排版
- 网站优化关键词密度多少才是最合适的?
- 网络游戏制作---坦克大战(1)
- 热爱3D游戏建模,副业兼职外包可以做到什么程度?
- 【论文研读】Similarity of Neural Network Representations Revisited (ICML2019)
- 用友U8 cloud,信创云ERP的数智先锋
- 哈工大的计算机科学与技术三个校区区别,哈尔滨工业大学计算学部研招拟录三地比较,深圳校区初试分数最高...
- Promise 拦截器 eslink reject报错 Expected the Promise rejection reason to be an Error
- 逆向 - 恢复符号表
- (自用)C语言学习过程资料存档