在一个Android项目中使用多个SQLiteDatabases和SQLiteOpenHelpers是否安全?

时间:2013-08-24 12:32:36

标签: android database sqlite android-library

我有我的android项目(projectA),我必须加入其他第三方项目(projectB),两者都有很小的改动。我认为这样做的好方法是将projectA转换为库并使projectB使用该库。

问题是两个项目都使用SQLite数据库。他们有自己的SQLiteOpenHelpers和东西,简而言之,他们都是用正常的方式编写一个使用DB的android应用程序(当然他们的DATABASE_NAMES是不同的)。

我想知道在这种情况下是否可能存在某些冲突?我不知道,有些数据库死锁,难以调试崩溃等?我有点担心,因为我昨天看到了这个例外:

java.lang.IllegalStateException: attempt to re-open an already-closed object: 
    SQLiteDatabase: /data/data/[com.package.url.of.projectB]/databases/[projectAdatabaseName]

这可能只与projectA中的一些错误有关,但我想确保它不是由数据库之间的某些混淆引起的,而且我所描述的这种情况是可以接受的。在使用单独的数据库加入两个Android项目时,有哪些潜在的缺陷,需要注意的事项,最佳实践?

1 个答案:

答案 0 :(得分:0)

创建和使用多个SQLiteOpenHelper是完全安全的,只要它们不使用相同的数据库,当然。但SQLiteOpenHelper是一个抽象类,具体实现可能会引入冲突。