android之Activity.startManagingCursor方法详解

在使用数据库操作查询数据后,如果是在Activity里面处理,那么很可能就会用到startManagingCursor()方法,在这里讲一下它的作用和使用注意事项.调用这个方法,就是将获得的Cursor对象交与Activity 来管理,这样Cursor对象的生命周期便能与当前的Activity自动同步,省去了自己管理Cursor。看下文档里的注释This method allows

大家好,又见面了,我是全栈君。

在使用数据库操作查询数据后,如果是在Activity里面处理,那么很可能就会用到startManagingCursor()方法,在这里讲一下它的作用和使用注意事项.

调用这个方法,就是将获得的Cursor对象交与Activity 来管理,这样Cursor对象的生命周期便能与当前的Activity自动同步,省去了自己管理Cursor。

看下文档里的注释

This method allows the activity to take care of managing the given Cursor‘s lifecycle for you based on the activity’s lifecycle. That is, when the activity is stopped it will automatically call Cursor.deactivate on the given Cursor, and when it is later restarted it will call Cursor.requery for you. When the activity is destroyed, all managed Cursors will be closed automatically. If you are targeting android.os.Build.VERSION_CODES.HONEYCOMB or later, consider instead using LoaderManager instead, available via getLoaderManager().

Warning: Do not call Cursor.close() on cursor obtained from managedQuery, because the activity will do that for you at the appropriate time. However, if you call stopManagingCursor on a cursor from a managed query, the system will not automatically close the cursor and, in that case, you must call Cursor.close().

 

看不懂没关系,下面三条懂了就行:
1.这个方法使用的前提是:游标结果集里有数据记录。
所以,在使用之前,先对Cursor是否为null进行判断,如果Cursor != null,再使用此方法
 
2.如果使用这个方法,最后也要用stopManagingCursor()来把它停止掉,以免出现错误。
 
3.使用这个方法的目的是把获取的Cursor对象交给Activity管理,这样Cursor的生命周期便能和Activity自动同步,
省去自己手动管理。如果不调用,那么工作就要你自己来做,在Activity被stopped时,调用Cursor.deactivate,在restart的时候调用Cursor.requery,还有其他状态也最好都与Activity保持同步,以免出现一些错误,不过,为什么不用现成的startManagingCursor,省时又省力.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/121427.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • evaluateJavascript_jquery form

    evaluateJavascript_jquery formhttp://www.position-relative.net/creation/formValidator/demos/demoValidators.html      $(function(){      $(“#enrolment_Form”).validationEngine(“attach”);      va

    2022年10月3日
    1
  • Java多线程详解_java支持多线程

    Java多线程详解_java支持多线程一、线程生命周期一个线程被实例化完成,到线程销毁的中间过程1.新生态:New一个线程对象被实例化完成,但是没有做任何操作2.就绪态度:Ready一个线程被开启,并且开始抢占CPU时间3.运

    2022年8月16日
    6
  • 来看看视频种子骗局[通俗易懂]

    来看看视频种子骗局1,都是很难下载的资源2,以1080BulRay命名3,文件大小集中在1G左右4,以xmous结尾(应该是作者为了好识别)5,都有官方宣传图片(Cover.jpg)和说明txt文件

    2022年4月17日
    41
  • python一行实现局域网内传输文件[通俗易懂]

    python一行实现局域网内传输文件[通俗易懂]python一行实现局域网内传输文件熟悉python的大家伙,对于这个应该不陌生,这个功能我一直都在使用,今天想记录一下其实时想抛砖引玉。缘由记得那是刚开始学习python,对任何精简而强大的功能都感到好奇。从任何平台,只要看到关于python的文章,就会点进去进行深度阅读。久而久之,的确学习到了一些小技巧,或言之投机取巧吧。比如,这个用python来实现局域网内文件传输,就是在用了坚果pr…

    2022年6月4日
    33
  • JavaScript爬虫_速通物流

    JavaScript爬虫_速通物流目录一、前言二、什么是JavaScript,有什么用?三、HTML嵌入JavaScript的方式:第一种方式:第二种方式:第三种方式:JavaScript的变量函数初步函数参数中的几个场景情景1:传入参数不足情景2:传入参数过多情景3:无参数传入情景4:多个函数同名变量的种类js中的数据类型typeof运算符原始类型:1.Undefined2.Number什么时候结果是一个NaN呢?常见的函数:isNaN:……

    2022年10月20日
    4
  • pycharm激活码key is invalid[最新免费获取]2022.03.04

    (pycharm激活码key is invalid)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html40ZKSWCX8G-eyJsaWN…

    2022年4月2日
    328

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号