Android 日历在处理重复数据的逻辑

522 阅读1分钟

处理重复数据的绝招,直接去访问当前的Instance中的数据:

Uri.Builder builder = CalendarContract.Instances.CONTENT_URI.buildUpon();

ContentUris.appendId(builder, Long.MIN_VALUE);
ContentUris.appendId(builder, Long.MAX_VALUE);
Cursor rruleCusor = getContentResolver().query(builder.build(), null,
CalendarContract.Instances.EVENT_ID + "="+id, null,null);
if(rruleCusor == null || rruleCusor.getCount() == 0){
   Log.d(TAG,"empty.");
   return;
 }
 Log.d(TAG,"rruleCusor:"+rruleCusor.getCount());
 while (rruleCusor.moveToNext()){
 long begin = rruleCusor.getLong(rruleCusor.getColumnIndex(CalendarContract.Instances.BEGIN));
 Log.d(TAG,"begin:"+begin);

}

对重复数据进行操作的时候,无论是删除或者修改操作,日历里面的做法都是Instance中对应的一条数据删除,然后,再外面再新增一条相应的数据。