2010-06-17 10 views
3

J'utilise des tableaux statiques et des HashMaps pour stocker des valeurs dans ma classe AppWidgetProvider. Mais ils deviennent nuls quand le processus meurt, ainsi le widget ne fonctionne plus. Existe-t-il des alternatives à l'utilisation de membres statiques pour stocker des données pour un AppWidgetProvider dans Android?Alternatives aux variables statiques dans Android

+1

Utilisez les variables membres et stocker les données dans le stockage physique lorsque le processus se arrête? –

+0

Comment saurai-je quand le processus s'arrête? Aussi, voulez-vous dire ContentProviders lorsque vous parlez de stockage physique? – Mocha

Répondre

2

La « bonne » façon de faire ce que vous faites (je crois) serait SharedPreferences. Le guide de développement Android a une grande page sur les différentes méthodes de Data Storage in Android. Essayez également de ne pas utiliser trop de valeurs statiques. Peut-être que ce que vous faites serait mieux accompli avec des cours de singleton, bien que, d'après la question, il est difficile de dire à quoi vous les utilisez.

0

Avez-vous vérifié Ressources de tableau typé?

Resource Types in the Android Dev Guide

+0

Malheureusement, TypedArray ne permet pas de stocker des valeurs lors de l'exécution, ce que je recherche. – Mocha

+0

D'autres idées? – Mocha

+0

si vous avez besoin de stocker une petite quantité de données, j'utiliserais SharedPreferences, tout ce qui fonctionne dans le contexte de l'application sera en mesure d'accéder à l'information sélectionnée ... si vous avez besoin de plus de stockage alors, je regarderais en utilisant un db Sqlite et stockez votre information dans des tableaux, mais cela peut être à un poids lourd. En utilisant les SharedPreferences, vous pouvez stocker une chaîne formatée bien connue, ou peut-être l'équivalent d'une chaîne JSONObject/JSONArray, puis vous pouvez utiliser l'objet JSONObject/JSONArray pour analyser les données dans quelque chose que l'application utilisera. – mmaitlen

-1

Vous pouvez écrire un objet dans un fichier classe .DEFINE et le remplir avec des valeurs nécessaires à l'emploi du temps d'exécution objectwriter pour le sauver

Questions connexes