长期存在的数据库参考/正确的数据库设置

时间:2015-11-19 21:20:52

标签: java android

在整个申请期限内保持SQLiteDatabase引用的正确方法是什么?

目前,我有一个看起来像这样的课程:

public class myApp {
    public static SQLiteDatabase DB;

    //...
}

然后在我的课程中ApplicationonCreate()我会检查myApp.DB是否为null,如果是,请创建一个新的SQLiteOpenHelper课程并设置它到getWritableDatabase()。在我的应用程序中,我引用了myApp.DB来查询各种问题等。

这在本地测试目的下工作正常,但是其他人正在经历这会产生奇怪行为的情况(主要是在尝试使用select DISTINCT tbl_name from sqlite_master where tbl_name = 'myTable'来确定表的存在时) - 猜测,我在想某事正在发生导致myApp.DB引用被GCed。这让我相信我需要在与数据库交互之前对null执行相同的检查,但我不喜欢在每次单个数据库交互之前进行检查的想法(可能通过在我自己的方法中包装所有查询来调用该检查第一)。

那么维护数据库可靠引用的最佳做法是什么?我应该在每次互动之前保持对SQLiteOpenHelpergetWriteableDatabase的引用吗?

0 个答案:

没有答案