我想使用greenDao和来异步从数据库中加载数据。我发现了使用contentProvider的示例。我知道使用loader是从数据库加载数据的最佳方式,因为它处理游标的生命周期,在添加值时自动更新游标。不幸的是没有使用greenDao的loader示例,这是可能的吗?还是我必须使用contentProvider?谢谢。
我遇到了这个问题,因为我也有同样的问题,但我有一个想法,但还没有尝试过,但你可能可以比我更快更好地执行它。我认为eventbus(https://github.com/greenrobot/EventBus)可以是一个解决方案,每当本地数据库发生变化(添加、删除、更新),您可以通知一个事件,在您的活动中,您应该有一个事件监听器,接收到事件后会触发内容重新加载(重新查询)。
DaoSession session = DbHelper.getInstance().getDaoSession();
final SpeakerDao speaker = session.getSpeakerDao();
new AsyncTask<Void, Void, Speaker>() {
@Override
protected Speaker doInBackground(Void... params) {
return speaker.queryBuilder().list().get(0);
}
@Override
protected void onPostExecute(Speaker result) {
// do stuff with speaker
}
}.execute();