请教大家一个问题: 在android中,如果cursor是当作一个参数传到一个方法中,这里的cursor需要关闭吗?
希望高人指点啊!比如: f1(Cursor cursor)
       {
          //这里从cursor中得到值
          //这里需要关闭cursor吗?
        }

解决方案 »

  1.   

    这个不一定的,需要看你传进来的是不是系统传来的。
    如果是你调用的函数,并且它在其他地方有关闭,由于是引用,并不是拷贝,所以不需要关闭。
    我一般的经验是,例如有sql的地方,构建了这个cursor的对象,就找关闭它的地方。如果这个cursor被其他地方作为参数调用,则不必关心。例如,这个cursor在界面oncreate时候构建,那么我只要关注界面销毁时候是不是关闭就行了。其他用的时候不必关闭,否则要重建。
    另外,像cursorAdapter这样传进来了cursor它有自己的生命周期,有adapter去回收,我们放心用就好了啊。
    我知道就这些,希望能对你有一定帮助。^_^
      

  2.   

    为什么不把从cursor中得到的值传出去呢