0

我有我的 android 项目 (projectA),我必须与其他 3rd 方项目 (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 项目时,有哪些潜在的陷阱、需要注意的事项和最佳实践?

4

1 回答 1

0

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

于 2013-08-24T14:18:11.183 回答