ParseQueryAdapter.setAutoLoad(true)不刷新数据
问题描述:
我想自动加载更新到解析云的数据。我正在使用ParseQueryAdapter从Parse请求更新的数据。我还设置了commentsQueryAdapter.setAutoLoad(true),但它仍不刷新数据。ParseQueryAdapter.setAutoLoad(true)不刷新数据
//Set up a customized query
final ParseQueryAdapter.QueryFactory<ParseCommentsClass> factory =
new ParseQueryAdapter.QueryFactory<ParseCommentsClass>() {
public ParseQuery<ParseCommentsClass> create() {
ParseQuery<ParseCommentsClass> query = ParseCommentsClass.getQuery();
query.whereEqualTo("videoId", videoID);
query.setCachePolicy(ParseQuery.CachePolicy.NETWORK_ELSE_CACHE);
query.orderByDescending("createdAt");
return query;
}
};
// Set up the query adapter
commentsQueryAdapter = new ParseQueryAdapter<ParseCommentsClass>(this, factory) {
@Override
public View getItemView(final ParseCommentsClass post, View view, ViewGroup parent) {
if (view == null) {
view = View.inflate(getContext(), R.layout.comments_layout, null);
}
ImageView ProfileView = (ImageView) view.findViewById(R.id.profilePic);
TextView usernameView = (TextView) view.findViewById(R.id.name);
TextView commentsView = (TextView)view.findViewById(R.id.comments);
String ProfileThumb = String.valueOf(post.getUserPic().getUrl());
Picasso.with(SingleVideoView.this)
.load(ProfileThumb)
.transform(new CircleTransform())
.resize(70,70)
.centerCrop()
.into(ProfileView);
usernameView.setText(post.getUser());
commentsView.setText(post.getComment());
return view;
}
};
// Disable pagination, we'll manage the query limit ourselves
// commentsQueryAdapter.setPaginationEnabled(false);
listView = (ListView)findViewById(R.id.comments_list);
listView.setAdapter(commentsQueryAdapter);
commentsQueryAdapter.setAutoload(true);
}
答
好吧我找到了一种方法来实现Parse Cloud的间隔刷新。
private Timer autoUpdate;
@Override
protected void onResume(){
super.onResume();
autoUpdate = new Timer();
autoUpdate.schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
commentsQueryAdapter.loadObjects();
}
});
}
}, 0, 1500); // updates each 40 secs
}