创建了多个sqlite数据库实例

时间:2016-12-28 07:34:46

标签: android sqlite android-syncadapter

在我的一个Android应用程序中,   - 我在另一个进程中运行SyncAdapter,它实际上从sqlite db查询数据并将数据推送到服务器。   - SqliteDatabase是单例,并且整个应用程序中只有它的实例。

但是,在我安装应用程序之后,正在创建两个SqliteDatabase个实例。一个用于我的应用程序,一个用于后台进程(同步)。这样就创建了两个实例,它们在同一个数据库上运行。

在这些情况下,如果两个实例一次尝试插入db,则其中一个请求将抛出错误。

当有多个进程时,这是处理(CRUD db)的正确方法吗?

创建单个db实例的代码

public class SqliteStorage extends SqliteOpenHelper {
    public SqliteStorage(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        db = getWritableDatabase();
        db.setVersion(DB_VERSION);
    }

    public static synchronized SqliteStorage getInstance() {
        if(mDBStorage == null) {
            mDBStorage = new SqliteStorage(MyApplication.getContext());
        }
        return mDBStorage;
     }
}

0 个答案:

没有答案