0

我正在我的 Android 应用程序中使用 Parse 实现群聊。场景是,当发件人向组发送任何消息时,我在发件人端解析本地数据存储时使用标签固定此消息。而且我还提出了自动刷新方法,它每秒从解析本地数据存储中检索数据。但问题是当我调用 pinInBackground 方法时,没有使用适配器在 ListView 中填充数据。但是当我一起调用 saveInBackground 和 pinInBackground 方法时,它正在填充。

我检查本地数据存储中的数据大小是否也在增加。但没有反映在 ListView 中。

我正在使用以下方法从本地数据存储中检索数据 -

    private ArrayList<ParseObject> mMessages;
        private MyCustomAdapter1 mAdapter;
        private ListView lvChat;
         private boolean mFirstLoad;

//in onCreate() method      
        mMessages = new ArrayList<ParseObject>();
        lvChat.setTranscriptMode(1);
        mFirstLoad = true;
        mAdapter = new MyCustomAdapter1(getActivity(), mMessages);
        lvChat.setAdapter(mAdapter);

private void receiveChatMessages() {
    ParseQuery<ParseObject> query = ParseQuery.getQuery("ChatMessages");
    query.orderByAscending("createdAt");
    query.fromPin("myLable");
    query.findInBackground(new FindCallback<ParseObject>() {
        @Override
        public void done(List<ParseObject> list, ParseException e) {
            if (e == null) {
                mMessages.clear();
                mMessages.addAll(list);
                mAdapter.notifyDataSetChanged(); // update adapter
                // Scroll to the bottom of the list on initial load
                if (mFirstLoad) {
                    lvChat.setSelection(mAdapter.getCount() - 1);
                    mFirstLoad = false;
                }
            } else {
                Log.d("message", "Error: " + e.getMessage());
            }
        }
    });
}

问题 - saveInBackground 方法正在反映数据但 pinInBackground 不是的原因是什么?

提前致谢!

4

0 回答 0