我们正在开发一个具有一些聊天功能的应用程序,并且正在使用SendBird Android SDK来实现此目的。

当用户登录时,我们向SendBird查询该用户的GroupChannels,这将返回该用户当前所在的频道列表。我们希望能够保留此列表。

当前在应用程序中,我们使用TinyDb保留一些数据。但是,由于以下错误,这对于GroupChannels列表是不可能的:


  无法为com.sendbird.android.BaseMessage调用no-args构造函数注册一个InstanceCreator


因此,我们还尝试使用ORM库Realm for Android。但是,这要求我们更改SendBird类以扩展RealObject,并且我们不希望修改SendBird的类。

所以我想真正的问题是,我们如何存储/持久保存不属于我们的对象列表(SendBird类)。

任何帮助将不胜感激。

最佳答案

序列化是最近添加的。文档中的caching data部分提供了一些演示。

基本上,您将使用这些方法来序列化和反序列化消息和通道。

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

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


然后,将序列化的数据存储在本地数据库(例如SQLite或Realm)中,并在收到新消息或创建新通道时对其进行更新。

10-07 16:32