Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
172 views
in Technique[技术] by (71.8m points)

Android calendar - querying Instances table does not always return fresh data

Title says it all. I use minimalistic code from official Google docs to query Instances table, but it does not work properly. There are several random problems:

  • sometimes it returns already deleted events, or it does not reflect changes I made (as if there was some kind of cache)
  • sometimes is returns proper data but with INCORRECT instance ID for each instance, so these instances can not be opened with calendar Intent (probably also related to cache, apparently Instances table was not re-generated after editing). Once I force Google Calendar app syncing, this problems disappear

This is my code:

Uri.Builder builder = Instances.CONTENT_URI.buildUpon();
ContentUris.appendId(builder, timeFrom);
ContentUris.appendId(builder, timeTo);

String projection = new String[] { Instances.EVENT_ID, Instances.TITLE };
String selection = null;
String args = null;
String sort = null;
cursor = contentResolver.query(builder.build(), projection, selection, args, sort);

How to fix this problem? It is all very random, and can not be easily reproduced because it happens randomly and only sometimes. I saw similar topic here and also here, and outside stackoverflow also here but there are no answer nor fixes, nor hints in official docs whatsoever.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...