我正在尝试构建我的第一个应用程序,但正在与sqlite进行斗争。
我明白了
W/SQLiteConnectionPool﹕ A SQLiteConnection object for database '/data/data/com.example.user.myApp/databases/testJavaNorm.sqlite' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
W/SQLiteConnectionPool﹕ A SQLiteConnection object for database '/data/data/com.example.user.myApp/databases/testJavaNorm.sqlite' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
W/SQLiteConnectionPool﹕ A SQLiteConnection object for database '/data/data/com.example.user.myApp/databases/testJavaNorm.sqlite' was leaked! Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
作为初学者,我使用了Sqlite tutorial。据我所知,我必须在DB类的末尾编写公共方法,并调用它,如3所示。
但Android工作室有时会显示内存泄漏。
我注意到任何地方都没有db.close。所以我在调用方法,后来的公共方法中添加了它。仍然有泄漏。现在我已经读过光标也必须关闭。
我使用本教程错了吗?或者这是一个糟糕的教程?
答案 0 :(得分:0)
这是你用过的教程。在cursor.close();
if (cursor.moveToFirst()) {....}
还是:
我认为有更好的教程可用。本教程中的一些内容没有意义,例如while循环周围的cursor.moveToFirst()
。 I would do this on this way.
答案 1 :(得分:0)
我使用本教程错了吗?或者这是一个糟糕的教程?
这是一个非常糟糕的教程。除了你指出的错误之外,它还对文件系统路径进行了硬编码。 从不硬编码文件路径。它也完全打破了SQLiteOpenHelper
模型。
对于想要使用您的应用打包数据库的特定情况,请use SQLiteAssetHelper
。