ActiveAndroid .save()操作是在主线程上执行还是异步执行?

时间:2015-03-28 14:29:11

标签: android activeandroid

我正在使用ActiveAndroid库,我已经阅读了所有信息(非常极简主义和不足之处) 没有提及.save()操作是否同步执行。

如果它是异步的,我该如何"听"它在继续之前结束了吗?

http://www.activeandroid.com/ - 这是我读过的文件

1 个答案:

答案 0 :(得分:4)

如果你看一下Model类的源代码,你会发现save方法没有进行任何线程处理:

public final Long save() {
    final SQLiteDatabase db = Cache.openDatabase();
    final ContentValues values = new ContentValues();

    for (Field field : mTableInfo.getFields()) {
        /* ... */
    }

    if (mId == null) {
        mId = db.insert(mTableInfo.getTableName(), null, values);
    }
    else {
        db.update(mTableInfo.getTableName(), values, idName+"=" + mId, null);
    }

    Cache.getContext().getContentResolver()
            .notifyChange(ContentProvider.createUri(mTableInfo.getType(), mId), null);
    return mId;
}

因此可以同步保存。