Meilleur auteur de réponses
Problème de Persistance IsolatedStorage

Question
-
Je viens d'avoir un comportement très bizarre sur mon appli.
Mon appli possède des tiles qui sont paramétrés avec pas mal d'option dans un écran dédié. Aujourd'hui, je m’aperçois que mes tiles ne sont pas à jour. Sur le fond, c'est possible, j'ai peut être pas lancé mon app depuis 15jours.
Le problème, c'est que lorsque je lance mon app, il n'y a plus aucuns paramétrages de fait. Le plus visible étant les couleurs. Je me retrouve avec un truc complétement fou : Mon app me confirme qu'elle vient de se lancer pour la 1ere fois, mais les tiles eux affichent mes couleurs habituelles plus les options que j'ai définie.
Le seul truc que je peux imaginer, c'est qu'au lancement de mon app après 15jours, l'isolated storage ait été réinitialisé. En tout cas, ce comportement explique pourquoi mon background agent n'arrive pas à trouver des données dans l'isolated storage qui sont forcement créés au 1er lancement de mon app.
Si quelqu'un à une idée, j suis preneur la...
Réponses
-
Bonjour,
Comment enregistre-tu tes données dans l'isolated storage ? Sont-elles serializés ? Attention notamment aux accès concurrents, voir l'article de Rudy à ce sujet http://www.rudyhuyn.com/blog/2012/06/11/perennite-des-donnees-sous-windows-phone/
Pour que la discussion puisse être identifiée comme résolue merci de marquer les réponses qui vous ont aidées à solutionner votre problème comme "réponse".
- Marqué comme réponse Olivier Bachellez jeudi 1 novembre 2012 17:31
Toutes les réponses
-
Bonjour,
Comment enregistre-tu tes données dans l'isolated storage ? Sont-elles serializés ? Attention notamment aux accès concurrents, voir l'article de Rudy à ce sujet http://www.rudyhuyn.com/blog/2012/06/11/perennite-des-donnees-sous-windows-phone/
Pour que la discussion puisse être identifiée comme résolue merci de marquer les réponses qui vous ont aidées à solutionner votre problème comme "réponse".
- Marqué comme réponse Olivier Bachellez jeudi 1 novembre 2012 17:31
-
En fait, j'utilise ApplicationSettings. Je n'ai pas de problème d'accès concurrent. L'agent lit et l'appli peut lire et modifier.
Si c'est pas fiable, bah c quand même pas top. Cela voudrait dire que je dois repenser toutes ma gestion de sauvegarde des paramètres.. Ca promets...
-
C'est tout de même étrange ce que tu décris comme phénomène, peut-on avoir les sources concernant l'enregistrement/lecture dans les settings ?
Pour que la discussion puisse être identifiée comme résolue merci de marquer les réponses qui vous ont aidées à solutionner votre problème comme "réponse".
-
Voila ce que je fais au lancement de mon app pour tous les paramètres :
Try
isolatedStore = IsolatedStorageSettings.ApplicationSettings
Catch e As Exception
Debug.WriteLine("Exception while using IsolatedStorageSettings: " & e.ToString())
End Trykey = "RDV_Prives" If Not isolatedStore.Contains(key) Then isolatedStore.Add(key, True) RDV_Prives = True Else RDV_Prives = isolatedStore(key) End If
J'utilise toujours le même type de code pour lire que ce soit dans l'app ou dans l'agent
Ensuite, j'ai ca pour écrire :
Private Sub setisolated(ByVal Key As String, ByVal value As Object) Dim isolatedStore As IsolatedStorageSettings If General_charge Then Try ' Get the settings for this application. isolatedStore = IsolatedStorageSettings.ApplicationSettings Catch e1 As Exception Debug.WriteLine("Exception while using IsolatedStorageSettings: " & e1.ToString()) End Try isolatedStore(Key) = value isolatedStore.Save() End If End Sub
Les try catch sont pas bien placés, mais j'ai eu aucun plantage la dessus.
Les seuls messages d'erreurs que j'ai, c'est sur des keynotfound alors qu'elles sont forcement créées lorsqu'on lance l'appli.Ca fait un moment que j'y réfléchis et je vois pas de problème dans mon code.
-
Ton code semble correct.
Dans quels events effectue-tu ces appels ?
Lorsque tu déploie ton application, effectue tu un rebuild (ou clean solution) avant le deploy ? Car ces méthodes réinitialise le contenu de l'isolated storage (désinstallation / réinstallation).
Pour que la discussion puisse être identifiée comme résolue merci de marquer les réponses qui vous ont aidées à solutionner votre problème comme "réponse".
- Modifié Jérôme Dupuy mardi 30 octobre 2012 15:39
-
La première partie du code est appelé dans le constructeur de ma main page. j'ai tout mis dans une sub init_appli
Pour les modifications, c'est dans deux pages dédiées qui sont appelées via différentes event en fonction des controls utilisés : listpicker, radiobutton, checkbox.
Ca m'arrive de faire des rebuild, mais cela n'explique pas le problème. si j'avais fait un rebuild sur mon phone et déployé l'app, mes tiles ne se seraient plus mis à jour.
Par contre, j'ai un doute du coup : si j'ai fait un rebuild de mon app et publier sur la market l'app, c'est bien une MAJ qui est faite non? et pas comme si j'avais rebuild sur mon phone : fresh installation -
Oui oui c'est bien un rebuild.
Mais attention, même si tu ne fais que lire dans ton agent, y'a un problème d'accès concurrent inter process car ton agent va qd même essayer de faire un Save (c'est ainsi que fonctionne ApplicationSettings, t'as pas le choix)
S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
-
-
-
Bonjour Olivier
Pouvons-nous considérer que vous avez résolu votre problème avec les scénarios proposés ?
N’oubliez de marquer la réponse.
Cordialement,