1
Wir verwenden RealChangeListener, um Datenänderungen zu überwachen und Listenansicht zu aktualisieren, indem wir notifydatasetgchanged() aufrufen.Aufruf von Listview notifydatasetchanged() in Realmchangelistener ist gut zu tun?
Erste Sync-Zeit, wir bekommen viele Datensätze vom Server (pro Batch 100 Datensätze), Schleife durch Ergebnisse Aktualisierung Realm wie unten im Hintergrund Thread.
for(int i=0;i<results.size();i++)
{
// processing and validation
....
db.beginTransaction();
db.copyToRealm(processedObject);
db.commitTransaction();
}
In Tätigkeit sind wir registriert realmResults Hörer wie unten Code ändern
@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();
}
}
};
Fragen:
- ist es am besten Praxis notifyDataSetChanged() in
reamlChangeListner anrufen? - Für jede CommitTransaction() Ich denke, RealmChangeListener wird aufgerufen werden, Aufruf von notifyDataSetChanged() Aufruf oft ist es in Ordnung?
- Wenn über die Praxis ist nicht gut zu tun, schlagen Sie mir vor, wenn Alternativen, die ich berücksichtigen muss.
Dank