2

我正在使用 ActiveAndroid 库,并且我已经阅读了全部信息(非常简约且不幸的是不足)没有提及.save()操作是否同步执行。

如果它是异步的,我如何在继续之前“听”它结束?

http://www.activeandroid.com/ - 这是我阅读的文档

4

1 回答 1

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;
}

因此,保存是同步发生的。

于 2015-03-28T14:35:34.417 回答