位置: 编程技术 - 正文

Android Cursor源码笔记(1)(android源码分析实录)

编辑:rootadmin

推荐整理分享Android Cursor源码笔记(1)(android源码分析实录),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android实例源码,android 源代码,android实例源码,android源码分析实录,androidstudio源码网,android源码怎么运行,android 源代码,android 源代码,内容如对您有帮助,希望把文章链接给更多的朋友!

Cursor接口:extends Closeable,没啥说的.因为本身就是一个接口,所以其源码的最大价值其实就是作为一份guide存在,注释还有让人读的欲望的. 就当翻译一遍guide了.不过有些太过直白的函数就不cover了. Cursor说白了就是一个row set附赠一些辅助函数.

getType(int columnIndex): 返回某个column的类型:

FIELD_TYPE_NULL : column is null.FIELD_TYPE_INTEGER : integerFIELD_TYPE_FLOAT : floatFIELD_TYPE_STRING : FIELD_TYPE_STRINGFIELD_TYPE_BLOB : blob

getPosition(): 返回Cursor 在Row set中的位置,起始位置为0, Cursor初始时的位置是-1(因此一般需要moveToFirst()作为初始化),对于已经到最后一个row的Cursor,如果继续next(),那么Cursor的pos就是 row 的 number(和-1遥遥呼应, -1是前位哨兵,rowNum是后位哨兵).

boolean move(int offset): 移动Cursor,如果移超了会被pos会被强制为哨兵位置,返回值代表移动到的新位置是不是一个可达有效的位置。

moveToFirst()/Last(), 只有在Cursor是empty的情况下才会是false.s

isBeforeFirst()/isAfterLast(),判断是否在哨兵位.

getColumnIndex(String columnName), 查找是否有columnName的column在当前的 row set中,不存在的话返回-1,否则返回index(以0为起始位),getColumnIndexOrThrow(String columnName)一样,不过更为严厉,不存在就抛异常了。

Android Cursor源码笔记(1)(android源码分析实录)

getBlob/String/Short….等getter,在column的value是null,或者column type不匹配,或者是无效值的情况(比如Long Short都会做极值判断的)下是会抛异常的,要注意。

deactivate(),暂时disable这个Cursor(可以理解内部有些资源已经释放了),所有的请求都会fail,主要是为了节省资源,deactivate()后,Cursor耗费资源会少一点. 但是呢已经和冤家requery()一起Deprecated了.

close()和deactivate()不同的是一种彻底的关闭和释放,不可逆.

registerContentObserver(ContentObserver observer),为此Cursor注册一个change的observer,注释里这么说:一般来说,只有requery()才会引起data change, 因为他监控的是the content backing this cursor.s

registerDataSetObserver(DataSetObserver observer),和上面类似,不过是监控changes happen to the contents of the this cursors data set,一般由requery()/deactivate()/close()触发

setNotificationUri(ContentResolver cr, Uri uri), 用来watch某个URI的change,这个URI可以是某一行,也可以是一个content type.

getWantsAllOnMoveCalls() onMove()只有在该函数返回true时才会被跨进程调用。判断是不是Cusor 所有的movement会引发一次onMove().

getExtras()就是给Cursor一个存储带外信息的地方,类似于View的tag.

respond(Bundle extras)也是一个带外性质的方法,其实就是一个自定义的接口,用户可以通过Override这个方法来实现对Curosr的某些自定义操作.

【媒体应用:Android平台Vitamio播放器探索之路系列】之七:Vitamio 项目集成常见错误汇总 作者:郭嘉邮箱:allenwells@.com博客:

[置顶] Android ListView ExpandableListView GridView WebView ScrollView HorizontalScrollView等 上拉加载,下拉刷新! 第一次写博客有点紧张,如果有错的话,欢迎您纠正!大家都知道目前App都有一个常见的功能就是上拉加载、下拉刷新,其实就是分页。但是今天要用第

Android学习能力之移动应用分析 1.移动应用分析是什么移动应用是移动互联网的重要载体,移动应用分析是指在获得移动用户使用等基本数据情况下,由服务端进行数据分析,深入挖掘

标签: android源码分析实录

本文链接地址:https://www.jiuchutong.com/biancheng/374425.html 转载请保留说明!

上一篇:android Launcher3应用列表修改透明背景(android launchers)

下一篇:【媒体应用:Android平台Vitamio播放器探索之路系列】之七:Vitamio 项目集成常见错误汇总(media and)

  • 累计折旧科目一直有余额吗
  • 如何区分追索权和付款请求权的区别
  • 取得交易性金融资产投资收益为什么在借方
  • 稿费的个人所得税税率是多少
  • 小规模印花税可以零申报吗
  • 房地产企业消防设施计入什么科目
  • 没有达到起征点的工资忘计申报个税,可以税前扣除吗
  • 预缴 汇算清缴
  • 企业所得税申报时间
  • 房地产开发企业的土地使用权计入哪里
  • 汇算清缴职工福利支出
  • 增值税逾期未申报的税务怎么处理
  • 结算备付金是流水账单吗
  • 印花税的计税依据怎么算公式
  • 现金收取业务办理流程
  • 合伙企业需要交企业所得税吗?
  • 报价表含税点是什么意思?
  • 分公司注销总公司会计分录
  • 企业所得税期间费用利息收支
  • 银行收取年费是什么意思
  • 税金及附加包括地方教育费附加吗
  • 其他专项收入怎么做账
  • 购买方取得专票会计分录
  • 应付职工薪酬核算内容不包括
  • php生成文件流
  • macbookpro鼠标滚轮是反的
  • win10电脑电源选项怎样设置最好
  • openeuler安装gnome
  • 人际关系定义是什么
  • 购入原材料所发票怎么入
  • 酒店开业前准备工作流程
  • 低值易耗品费用账务处理
  • php升级到php7注意的问题
  • 大雾笼罩的早晨
  • php中关键字修饰属性是什么
  • 金融商品转让业务包括
  • php 生成随机字符串
  • 金银首饰消费税计税依据
  • 收到金融服务费怎么转账给别人
  • vuex model
  • php生成颜色面板
  • 一万字综述怎么写
  • 企业取得交易性金融资产时
  • 【历史上的今天】3 月 29 日:“机器人三定律”问世;电脑动画首次获得奥斯卡;Caldera Linux 沉浮史
  • 若依idea
  • 个体户给对方公司开发票会怎样
  • 固定资产清理是三栏式还是多栏式
  • 决算报表属于会计账簿吗
  • 建筑劳务单位
  • 固定资产处置的净收入计入
  • 转账进公户
  • 购买软件使用权计入无形资产吗
  • 公司班车运费如何入账的
  • 民间非营利政府是指什么
  • 税控盘上报
  • 科技专项资金
  • 失控发票补交上年所得税
  • 投资主体将其拥有的货币或产业资本
  • 从事股权投资业务的企业业务招待费
  • 收据注明实际到账时间
  • 单位要处置一辆车怎么办
  • 待摊费用取消了怎么做账
  • 年底汇算清缴是什么
  • 货款还没收到有违法所得吗
  • 明细账建账的步骤
  • sql2000怎么修改默认实例名
  • win10文件夹设置
  • 安装双系统ubuntu和win
  • win10周年更新版是什么意思
  • windows 7安装步骤
  • win8更改电脑设置在哪
  • win7怎么安装网络驱动程序
  • python怎么运作
  • android sql语句
  • DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
  • JavaScript中property和attribute的区别详细介绍
  • unity3d游戏开发书籍
  • jquery解析XML及获取XML节点名称的实现代码
  • 四川国税局普通发票查询?
  • 怎么判断增值税能不能抵扣
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设