J'utilise Dagger 2 pour fournir une instance de domaine singleton pour l'application entière (tous les objets d'accès aux données utilisent un seul domaine). Cependant, pour autant que je sache, Royaume peut avoir plusieurs instances en utilisant Realm.getInstance()
et nous devons fermer chaque instance lorsque nous en avons terminé avec comme présenté par le royaume docs:Dague 2 - Dois-je utiliser une instance de royaume singleton?
/**
* Closes the Realm instance and all its resources.
* <p>
* It's important to always remember to close Realm instances when you're done with it in order not to leak memory,
* file descriptors or grow the size of Realm file out of measure.
*
* @throws IllegalStateException if attempting to close from another thread.
*/
@Override
public void close() {
if (this.threadId != Thread.currentThread().getId()) {
throw new IllegalStateException(INCORRECT_THREAD_CLOSE_MESSAGE);
}
if (realmCache != null) {
realmCache.release(this);
} else {
doClose();
}
}
Ma question est la suivante: dois-je utiliser une instance de domaine singleton comme je l'ai fait, ou créer une instance de domaine pour chaque activité/fragment et la fermer en utilisant realm.close()
à onDestroy()
?
beeeeeeeeeeeep. – EpicPandaForce