ActiveAndroid .save() 操作是在主线程上执行还是异步执行?
Are ActiveAndroid .save() operations executed on the main thread or asynchronously?
我正在使用 ActiveAndroid 库并且我已经阅读了全部信息(不幸的是,非常简约且不足)
没有提到.save()
操作是否同步执行。
如果它是异步的,我如何"listen"让它在继续之前结束?
http://www.activeandroid.com/ - 这是我阅读的文档
如果你看一下 Model class, you'll see that the 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;
}
因此同步发生保存。
我正在使用 ActiveAndroid 库并且我已经阅读了全部信息(不幸的是,非常简约且不足)
没有提到.save()
操作是否同步执行。
如果它是异步的,我如何"listen"让它在继续之前结束?
http://www.activeandroid.com/ - 这是我阅读的文档
如果你看一下 Model class, you'll see that the 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;
}
因此同步发生保存。