2010-04-20 69 views
0

Android中的日历应用程序是否维护其数据库的缓存? 每当我通过日历应用程序编辑和标记某些事件时,它都存储在数据库中,但如果我从某些外部源编辑calendar.db,则所做的更改不会反映在日历应用程序中。所以我的问题是:在Android 2.1中的日历应用程序中存储事件

  • 日历应用程序是否维护缓存或其他形式的数据库?
  • 如果是,那么在哪里以及如何?
+0

供参考:这里的标签应该是:日历和机器人,而不是你在这里完成的方式。 – 2010-05-14 19:54:01

回答

0

日历应用程序保留它在内存中显示的值是非常合理的。这可能是因为如果你来回追踪 - 足够远 - 那么它会忘记一些价值,然后当你再次返回时,它会从外部编辑的数据库中提取价值。但是,如果在抛弃内存中的值之前刷新内存中修改的值,则会在继续之前覆盖外部编辑的值。 (我不相信只有在需要放弃内存值时才会写入内存中的值;我希望它会在编辑值后马上合理地将值写入数据库 - 就像保存日历条目一样。 )

另一方面,它可能完全不同于此。

0

有一件事我能想到的,是使用权限,允许访问手机的日历在外部应用程序(非日历应用程序),并且该权限是:

WRITE_CALENDAR

同样,如果你尝试从同一个外部应用程序读取,你可能没有相关的读取权限得到坏值(或空值):

功能(6)

但是,如果它是一个自制日历,宠物项目或其他,你需要t o确保正在使用的数据库也允许其他用户写信给它,因为我现在不记得如何做到这一点。

就缓存而言,手机不应该缓存大量的数据库信息,尤其是因为它的SQLite。理论上,缓存会保存临时数据或常用数据(如索引),但它不会从数据库本身存储元组,并且修改缓存将无论如何都要求将更改提交到数据库。虽然这可能我完全错了。