2010-04-20 9 views
0

L'application de calendrier sous Android conserve-t-elle un cache de sa base de données? Chaque fois que je modifie et marque certains événements via l'application de calendrier, il est stocké dans la base de données mais si je modifie le fichier calendar.db à partir d'une source externe, les modifications apportées ne sont pas reflétées dans l'application de calendrier. Donc, ma question est:Stockage des événements dans l'application Calendrier sous Android 2.1

  • L'application de calendrier maintient-elle un cache ou une autre forme de base de données?
  • Si oui alors où et comment?
+0

FYI: Les balises ici doivent être: calendrier et android, pas comme vous l'avez fait ici. –

Répondre

0

Il est tout à fait plausible que l'application Calendrier conserve les valeurs qu'elle a affichées en mémoire. Il se peut que si vous effectuez un suivi de loin en arrière - assez loin - alors il oublie une certaine valeur et ensuite, lorsque vous revenez, il récupère la valeur de la base de données modifiée en externe. Toutefois, si elle vide la valeur modifiée en mémoire avant de supprimer la valeur de la mémoire, elle écrase la valeur modifiée en externe avant de continuer. (Je ne suis pas convaincu qu'il écrirait seulement la valeur en mémoire quand il devait jeter la valeur, je m'attendrais à écrire la valeur dans la base de données raisonnablement après la modification de la valeur - comme quand l'entrée du calendrier est sauvegardée.

D'autre part, il pourrait être complètement différent de cela.

0

Une chose que je peux penser, est d'utiliser l'autorisation pour permettre l'accès au calendrier du téléphone dans l'application externe (application non-calendrier), et que l'autorisation est:

WRITE_CALENDAR

De même, si vous essayez de lire à partir de cette même application externe, vous pouvez avoir de mauvaises valeurs (ou des valeurs nulles) sans l'autorisation de lecture associée:

READ_CALENDAR

Cependant, si elle est un calendrier homebrew, projet animal ou autre, vous besoin de t o Assurez-vous que la base de données utilisée permettra également aux autres utilisateurs d'y écrire, pensé que je ne me souviens pas exactement comment le faire maintenant.

En ce qui concerne le cache, le téléphone ne doit pas mettre en cache de nombreuses informations de base de données, en particulier depuis son SQLite. Un cache, en théorie, contiendrait des données temporaires, ou des données communément utilisées (comme un index), mais il ne stockerait pas les tuples de la base de données elle-même, et modifier le cache nécessiterait que la modification soit validée dans la base de données. Peut-être que je me trompe complètement à ce sujet.

Questions connexes