我使用下面提到的代码从android的本机日历应用程序中保存的所有日历中检索所有事件。现在,如果我从本机日历中删除某个事件,我的代码仍会提取并显示该事件。这怎么可能。它是否设置了一些删除标志而不是实际删除事件。
Cursor cursor = cr.query(Uri.parse("content://com.android.calendar/events"),
projection, selection, selectionArgs, null);
答案 0 :(得分:6)
请检查是否设置了'DELETED'标志。
或者您也可以尝试在SELECTION中包含以下内容
AND (deleted != 1)
所以选择字符串变为,
String selection = "( ("+ "title" + " LIKE '"+name+"') AND ( deleted != 1 ) )";
有时,CalendarDB需要一些时间才能删除事件。但“已删除”的列将标记为“1”,表示它们很快就会被删除。延迟的原因可能是日历等待同步
p.s:尝试使用此工具 - http://www.cellobject.net/Tools/CellObjectSQLiteXMLBrowser.aspx可视化日历数据库。请检查db
中的“已删除”和“脏”列