解析聊天未收到消息

时间:2016-01-18 13:27:00

标签: java android parse-platform

我们正在Android应用程序中实现聊天。我们有一个用户列表,当您点击其中一个用户时,您就开始与该用户聊天。我们可以使用发送方和接收方向数据库发送消息,我们可以在每次打开特定聊天时加载这些消息。但是,我们无法从数据库中获取发送给用户的消息。 This is how our Parse chat colums look like

这是我们加载会话列表的代码:

private void loadConversationList()
{
    final ParseQuery<ParseObject> q = ParseQuery.getQuery("Chat");
    if (convList.size() == 0)
    {
        // load all messages...
        ArrayList<String> al = new ArrayList<String>();
        al.add(buddy);
        al.add(UserList.user.getUsername());
        q.whereContainedIn("sender", al);
        q.whereContainedIn("receiver", al);
    }
    else
    {
        // load only newly received message..
        if (li != null && li.size() > 0)
            q.whereGreaterThan("createdAt", lastMsgDate);
        q.whereEqualTo("sender", buddy);
        q.whereEqualTo("receiver", UserList.user.getUsername());
    }
    q.orderByDescending("createdAt");
    q.setLimit(30);
    q.findInBackground(new FindCallback<ParseObject>()
    {

        @Override
        public void done(List<ParseObject> li, ParseException e)
        {
            if (li != null && li.size() > 0)
            {
                for (int i = li.size() - 1; i >= 0; i--)
                {
                    ParseObject po = li.get(i);
                    Conversation c = new Conversation(po
                            .getString("message"), po.getCreatedAt(), po.getString("sender"));

                    convList.add(c);

                    f = li.size();

                    if (lastMsgDate == null
                            || lastMsgDate.before(c.getDate()))
                        lastMsgDate = c.getDate();
                    adp.notifyDataSetChanged();

                }
            }

            handler.postDelayed(new Runnable() {

                @Override
                public void run()
                {
                    if (isRunning)
                        loadConversationList();

                }
            }, 1000);
        }
    });



}

会话列表用于在屏幕上显示te消息。在SendMessage中,我们还更新了会话列表,当然只有发送消息。问题是会话列表不会更新收到的消息

0 个答案:

没有答案