2010-06-11 9 views
2

Il serait utile pour beaucoup de personnes de savoir comment supprimer complètement une application de votre appareil lors des tests. J'ai téléchargé mon application plusieurs fois maintenant, et je l'ai également supprimé plusieurs fois. Le problème est lors de la suppression de l'application, il ne supprime pas les choses comme l'objet persistant lié à mon application, ou les images téléchargées via l'application. Ainsi, quand je télécharge la prochaine construction, je n'ai aucune idée si quelque chose s'est cassé qui est lié à la construction de l'objet persistant ou à la récupération des images puisque ces éléments existent déjà depuis la dernière construction. Je ne sais pas s'il s'agit d'un cache. Je ne sais pas si cela est prévu et je dois utiliser un utilitaire pour effacer ces données après la suppression de l'application. Je ne peux pas vraiment trouver beaucoup d'informations grâce à des recherches Web de base.Test sur l'appareil BlackBerry: ajout et suppression multiples de l'application

Toute information serait appréciée.

Blackberry Bold 9000. 4.6 OS. testé avec la carte SD et pas de carte SD.

Répondre

1

Les objets stockés dans PersistentStore sont automatiquement supprimés lors de la désinstallation si leurs interfaces ont été définies dans votre projet. S'ils proviennent de l'API BlackBerry standard, ils resteront jusqu'à ce qu'ils soient supprimés. E.G si vous enregistrez une chaîne dans le PersistentStore, il restera dans le PersistentStore mais si vous enregistrez une classe que vous avez créée, elle sera supprimée lors d'une désinstallation. Donc, si vous voulez que ces objets soient supprimés automatiquement, créez simplement une classe wrapper et enregistrez-la.

Les images stockées sur le système de fichiers ne seront pas supprimées jusqu'à ce que vous ou une application les supprimiez. Cependant, il devrait être facile pour vous d'écrire une application qui efface tout.

+0

Exactement - voir http://stackoverflow.com/questions/2879406/how-to-delete-application-data-on-install-and-reinstall/2879855#2879855 pour le même type d'information (item 2) –

+0

Il y a un problème avec l'utilisation native classes dans le stockage persistant - en tant qu'utilisateur, lorsque vous désinstallez une application, vous vous attendez à ce que toutes ses données soient enlevé. Cela n'a aucun sens de gaspiller de l'espace sur la mémoire pour une application que vous vouliez supprimer. Nous nous assurons, dans notre application, de toujours utiliser des wrappers et non les classes de code natives. – Tamar

+0

Merci. Je vais devoir moderniser cette application quand le temps viendra. Pour l'instant j'ai simplement écrit une fonction qui boucle les images et les supprime, ainsi que PersistentStore.destroyPersistentObject (clé); Je peux les appeler au lancement de l'application et il efface les données. Mes tests en ce moment sont plus liés à la première installation et pas tellement supprimer l'application, que je vais aborder plus tard. – Kai

0

Une autre solution que vous pourriez implémenter est de rendre votre application un peu consciente de ses données.

Créez une valeur String simple que vous persistez (ou en option, la persistez dans une table Hashtable afin de pouvoir stocker de nombreuses propriétés de cette façon) qui inclut "Version".

Au démarrage de l'application GUI, comparez la "Version" stockée à la version actuelle de l'application. Si la version stockée n'existe pas, ou si elle existe et correspond, ne rien faire.

S'il existe et ne correspond pas, nettoyez automatiquement les anciennes données persistantes; ou encore demander à l'utilisateur de voir s'il souhaite que les données soient supprimées (la meilleure dépendra de votre implémentation)

Vous pouvez également utiliser CodeModuleListener pour écouter un événement de désinstallation - dans ce cas, vous pouvez nettoyer à ce moment-là aussi bien ou à la place.

(En aparté et un peu d'auto-promotion éhontée, je travaille actuellement sur une bibliothèque partageable pour Blackberry qui rend la gestion de la persistance beaucoup plus facile, ainsi que la sauvegarde/restauration de données de bureau. du projet BBSSH, mais je vais le scinder en une bibliothèque distincte de composants de base et en le publiant sous une double licence GPL/commerciale facultative.Il contiendra des crochets pour le nettoyage des données et la gestion des versions.)

+0

L'OP ne sera pas en mesure d'utiliser un CodeModuleListener car il n'a été ajouté que dans OS 5.0 et cette application est testée sur 4.6. – Jonathan