android singleton helper并在删除/写入之前读取

时间:2014-12-18 10:17:45

标签: android sqlite android-sqlite

我有单独的数据库帮助程序来访问db。这部分没问题。但是,我怀疑读取和写入/删除的异步线程最终会出现问题。

如果一个线程正在读取,另一个正在删除;我怀疑阅读之前无法读取删除前的值。任何人都可以证实吗?使用单身助手实现这一目标应该是什么?

感谢任何帮助,谢谢

public CategoryDatabaseConnection(Context context) {
        mDbOpenHelper = CategoryDatabaseOpenHelper.getInstance(context, null, null, 0);
        mOpenCounter = mDbOpenHelper.mOpenCounter;
    }

    public void open() throws SQLException {
        // open database in reading/writing mode
        int value = mOpenCounter.incrementAndGet();
         if(value == 1 || mDatabase==null) {
                // Opening new database
             mDatabase = mDbOpenHelper.getWritableDatabase();
            }
    }

1 个答案:

答案 0 :(得分:0)

您必须同步数据库帮助程序,以便一次只能有一个线程访问它。

要实现同步,只需在您的课程之前将keywod同步。

实施例

public static synchronized singletonDBHelper()
{
 // your code
}