のような警告を得た
Channels channelsObject = basicClient.getIpMessagingClient
channelsObject.getChannel(channelId, new CallbackListener<Channel>() {
@Override
public void onSuccess(final Channel channel) {
currentChannel = channel;
setupRecyclerView();
}
});
private void setupRecyclerView() {
currentChannel.addListener(ChatFragment.this);
currentChannel.synchronize(new com.twilio.chat.CallbackListener<Channel>() {
@Override
public void onError(ErrorInfo errorInfo) {
Application.get().logErrorInfo("Channel sync failed", errorInfo);
}
@Override
public void onSuccess(Channel result) {
logger.d("Channel sync success for " + result.getFriendlyName());
}
});
Messages messagesObject = currentChannel.getMessages();
のようにやっていますか?
これはまさに起こっていることです。チャネルは、CallbackListener.onSuccess()
コールバックを受信した場合にのみ同期されます。これは非同期に実行され、そのコールバックが起動する前にgetMessages()
呼び出しが実行されます。
currentChannel.synchronize(new com.twilio.chat.CallbackListener<Channel>() {
@Override
public void onError(ErrorInfo errorInfo) {
Application.get().logErrorInfo("Channel sync failed", errorInfo);
}
@Override
public void onSuccess(Channel result) {
logger.d("Channel sync success for " + result.getFriendlyName() + " now can get messages and members objects");
Messages messagesObject = result.getMessages();
// should be non-null now
}
});
ありがとうございました。しかし、初めての同期には時間がかかっています(3〜4秒)。期待していますか? –
これはSDKで最適化するものです - 空のチャンネルで3〜4秒かかるのですか? – Berkus
はい。それはまた、空のチャンネルのために3-4秒かかる。 –