android – 显式关闭SQLite数据库中的Cursor,需要还是不需要?

android – 显式关闭SQLite数据库中的Cursor,需要还是不需要?,第1张

概述据我所知,在数据库关闭后,光标变为“无效”,是否同时关闭光标?这是否避免必须执行下面显示的 *** 作? 例1 public void String getResultsAndReturnString() { String result = ""; SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cu 据我所知,在数据库关闭后,光标变为“无效”,是否同时关闭光标?这是否避免必须执行下面显示的 *** 作?

例1

public voID String getResultsAndReturnString() {      String result = "";      sqliteDatabase db = dbHelper.getReadableDatabase();      Cursor cursor = qb.query(db,projection,null,null);      cursor.close();  <-- explicit cursor close example one      db.close();     return result;  }

例2

public voID Cursor getResultsAndReturnCursor(){   sqliteDatabase db = dbHelper.getReadableDatabase();   Cursor cursor = qb.query(db,null);   return cursor;}public voID cloSEOut(Cursor cursor,sqliteDatabase dataBase){     cursor.close();   <-- explicit cursor close example two     dataBase.close();}
解决方法 通过关闭数据库(它仍然存在并且您可以对其执行 *** 作)严格意义上不关闭游标,但是如您所知,关闭数据库会使游标无效.出于多种原因,您应该在使用完游标后明确关闭游标:

1)正如您所指出的,在关闭数据库之后,任何剩余的游标都会变得“无效”,并且不能依赖于准确的数据;

2)您将在LogCat中看到警告;

3)如果保持对游标的引用,则存在内存泄漏的风险;和

4)关闭不再需要的资源是一种很好的编程习惯.

总结

以上是内存溢出为你收集整理的android – 显式关闭SQLite数据库中的Cursor,需要还是不需要?全部内容,希望文章能够帮你解决android – 显式关闭SQLite数据库中的Cursor,需要还是不需要?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129236.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存