我正在我的 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 不是的原因是什么?
提前致谢!