1
RealChangeListenerを使用して、notifydatasetgchanged()を呼び出すことによって、データ変更をリッスンし、リストビューを更新しています。Realmchangelistenerのnotifydatasetchanged()を呼び出すlistviewを呼び出すのは良いですか?
最初の同期時間サーバー(バッチ100レコードあたり)から多くのレコードを取得すると、バックグラウンドスレッドでRealmを更新するループスルー結果が表示されます。活動で
for(int i=0;i<results.size();i++)
{
// processing and validation
....
db.beginTransaction();
db.copyToRealm(processedObject);
db.commitTransaction();
}
、我々はrealmResultsはコードの下
@Override
public void onStart() {
super.onStart();
mEntityDataProvider = new EntityDataProvider();
mEntityDataProvider = mEntityDataProvider.getListAsync();
mEntityDataProvider.addChangeListener(realmEntityChangeListener);
}
private RealmChangeListener<RealmResults<Entity>> realmEntityChangeListener = new RealmChangeListener<RealmResults<Entity>>() {
@Override
public void onChange(RealmResults<Entity> realmResults) {
if (mEntityListAdapter!= null) {
mEntityListAdapter.setData(realmResults);
mEntityListAdapter.notifyDataSetChanged();
}
}
};
質問のようにリスナーを変更登録されています
reamlChangeListnerでnotifyDataSetChanged()を呼び出すことがベストプラクティスですか?- すべてのcommitTransaction()について私は realmChangeListenerが呼び出されると思います。notifyDataSetChanged()を何度も呼び出すのはいいですか?
- 上記の練習がうまくいかない場合は、私が考慮する必要のある代替案がある場合は、 をお勧めします。
おかげ