2016-10-04 3 views
1

Nous créons une application qui aura des fonctionnalités de chat et nous utilisons le SDK SendBird Android pour y parvenir. Lorsque l'utilisateur se connecte, nous interroge SendBird pour les GroupChannels de cet utilisateur, ce qui renvoie la liste des canaux sur lesquels l'utilisateur se trouve actuellement. Nous souhaitons être en mesure de persister cette liste.Stockage de la liste des chaînes SendBird - Android

Actuellement dans l'application, nous utilisons TinyDb pour conserver certaines données. Toutefois, ce n'est pas possible avec la liste des GroupChannels à cause de cette erreur:

Unable to invoke no-args constructor for com.sendbird.android.BaseMessage Register an InstanceCreator

Nous avons donc essayé également d'utiliser une bibliothèque ORM, Royaume pour Android. Cependant cela nécessite que nous changions les classes SendBird pour étendre RealObject et nous préférons ne pas bricoler avec les classes de SendBird. Donc je suppose que la vraie question est, comment pouvons-nous stocker/persister une liste d'objets qui ne nous appartiennent pas (classes SendBird).

Toute aide serait grandement appréciée.

Répondre

0

Actuellement, SendBird ne prend pas officiellement en charge la base de données locale et la sérialisation.
Nous sommes conscients des inconvénients que vous rencontrez, afin de trouver des moyens de l'atténuer.
Je vous tiendrai au courant de ce problème.

1

La sérialisation a été ajoutée récemment. La section caching data dans la documentation fournit un peu de démonstration.

Fondamentalement, vous utiliseriez ces méthodes pour sérialiser et désérialiser les messages et les canaux.

byte[] baseMessage.serialize() 
BaseMessage BaseMessage.buildFromSerializedData(byte[] data) 

byte[] baseChannel.serialize() 
BaseChannel BaseChannel.buildFromSerializedData(byte[] data) 

Ensuite, stocker les données dans une base de données sérialisés locale (par exemple SQLite ou Realm) et le mettre à jour lorsque vous recevez un nouveau message, ou lors de la création d'un nouveau canal.