我的Xamarin应用程序实现了Sendbird。登录后收到消息后,我调用MarkAsRead并运行,将用户的GroupChannel标记为Read。但是,由于我希望推式通知能够正常工作,所以只要不使用ChatActivity,我就可以与sendbird断开连接。当ChatActivity打开后,我用
重新连接到sendbirdpublic void Reconnect()
{
if((SendBirdClient.GetConnectionState() == SendBirdClient.ConnectionState.CLOSED)) {
SendBirdClient.Connect(DataEnvironment.userProfile.email,
currentUser.access_token, (User user, SendBird.SendBirdException e) =>
{
if(e == null)
{
GetMessages();
}
else
{
}
});
}
}
您将看到我再次调用GetMessages()。这是因为我的聊天活动在正确连接之前已调用它,所以我第二次进行了此操作,以便可以进行聊天。之后,我可以毫无问题地发送和接收消息,它的工作原理与以前相同。但是现在当我用完全相同的代码调用MarkAsRead时。它不再起作用。我必须重新启动我的应用程序并使用我的连接代码进行连接。我承认稍有不同,但是我试图避免调用它,因为它将各种东西加载到内存中,如果每次聊天时我这样做都会真的减慢我的应用程序的速度。
我在启动代码中看到的唯一会影响Sendbird的东西是GroupChannel.CreateChannel(..)。但是,当我之前使用相同的处理程序尝试全部操作时,它会将我的通道集添加到我现有的通道集中。使用新的通道集仍然会产生此错误,因此不必删除通道并重新定义它们。
以前有人遇到过这个问题吗?