Aller au contenu

Problème cache : Quand je tourne l'écran, il vide mes variable Bitmap


Potoman

Recommended Posts

Voilà, je dévellope une simple ListView d'image.

Jusque là, rien de très difficile.

Les images sont téléchargé depuis internet.

Oui mais voilà, ce que je souhaite, c'est que lorsque l'on tourne l'écran, le script n'ai pas à recharger les images depuis le web.

J'arrive donc à mettre mes variables en cache, et à détecter si elle on déjà été télécharger.

j'enregistre tout mes images dans : static List listImage;

le problème, c'est que quand je tourne mon écran, le contenu redeviens null.

Alors que mon autre variable qui contient les url, ne change pas : static List listUrl;

On dirai qu'android me vide les variables qui contienne des images.

Pourrais t-on m'aider ?

Cordialement.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

L'activité est détruite puis recréée lorsque l'écran change d'orientation.

Jette un oeil à onRetainNonConfigurationInstance(), cette méthode permet de mettre de côté des données pendant la procédure. Tu les récupères ensuite avec getLastNonConfigurationInstance() au redémarrage de l'activité.

Plus de détails -> http://developer.android.com/resources/articles/faster-screen-orientation-change.html

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Déjà désolé pour le retard de la réponse, mais j'ai fait pleins d'autre chose sur mon appli.

Merci, alors j'ai regardé, et je pense avoir compris comment ça marché.

Mais y me reste un problème.

Moi, je veut sauvegarder deux liste.

une liste de bitmap : List

Et une liste d'une class que j'ai créé : List

Alors je test ce code pour voir si je récupére les deux listes, mais ça plante :'( :

@Override

public Object onRetainNonConfigurationInstance() {

//final LoadedPhoto[] list = new LoadedPhoto[numberOfPhotos];

final List list = myListImage;

//keepPhotos(list);

final List listBis = myLst;

final List allList = new ArrayList();

allList.add(list);

allList.add(listBis);

return allList;

}

private boolean loadPhotosAfterToggleScreen() {

@SuppressWarnings("unchecked")

List data = (List) getLastNonConfigurationInstance();

// The activity is starting for the first time, load the photos from Flickr

if (data == null) {

// mTask = new GetPhotoListTask().execute(mCurrentPage);

return false;

} else {

// The activity was destroyed/created automatically, populate the grid

// of photos with the images loaded by the previous activity

/* final LoadedPhoto[] photos = (LoadedPhoto[]) data;

for (LoadedPhoto photo : photos) {

addPhoto(photo);

}*/

this.myListImage = (List) data.get(0);

this.myLst = (List) data.get(1);

//myListImage = (List) data;

return true;

}

}

Et je comprend pas... On doit envoyer un object, j'ai donc pas le droit de faire une liste d'objet ?

Cordialement

nan c'est bon, j'ai trouvé cette petite page qui m'avance bien et j'ai réglé mon problème ! ^^

http://code.google.com/p/androidmudclient/source/browse/trunk/src/com/andmudclient/andmudclient.java?spec=svn3&r=3

Merci à tous.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...