【发布时间】:2017-12-04 23:22:07
【问题描述】:
这是一个聊天应用程序。我正在检索要在聊天室 recyclerview 上显示的消息。为此,我正在使用 FirebaseRecyclerAdapter。我正在检索最新的 500 条消息。那个聊天室有超过 20k 条消息。当我加载该活动时,加载所有 500 条消息需要 6 秒。
我跟踪了时间。
延迟发生在 setAdapter 和 RecyclerAdapter 类之间。
我在 Firebase 数据库中的消息结构
{
"-KlQc42ici0_PRCBX7-V" : {
"message" : "message 1",
"timestamp" : 1496185853436,
"type" : "action",
"username" : "berkleef2",
},
"-KlQmhcwK96j30FNoSs-" : {
"message" : "message 2",
"timestamp" : 1496188640000,
"type" : "action",
"username" : "atrickrodney16yahoocomat",
"zread" : true
},
"-KlQmjSoucJD7uaHriOh" : {
"message" : "message 3",
"timestamp" : 1496188647083,
"type" : "text",
"username" : "atrickrodney16yahoocomat",
"zread" : true
}
}
在 setAdapter 之后开始延迟
mNewAdapter = new NewChatRecyclerAdapter(
ChatMessageItem.class,
R.layout.message_item,
RecyclerView.ViewHolder.class, ref.limitToLast(500), Fusername, booIsPrivateChat, chatd, strOpponent);
messageList.setAdapter(mNewAdapter);
我认为适配器类没有问题。因此,如果问题在于加载 500 条消息。那么在这种情况下我应该怎么做才能加载聊天消息...
【问题讨论】: