Bonjour,

J'utilise ceci pour sauvegarder un objet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
public void saveToStream(Context context) {
            try {
                FileOutputStream stream = context.openFileOutput(FILENAME, 0);
                ObjectOutputStream out = new ObjectOutputStream(stream);
                out.writeObject(this);
                out.close();
                stream.close();
            } catch (Exception e) {
                Log.d("DBG", "Erreur saveToSTream: " + e.getMessage());
            }
        }
je peux facilement le relire, mais cet objet complexe qui contient des listes d'objets, des HashMap... est incorrectement lu (des champs sont null) quand je relis le fichier après une mise à jour de l'APK, même quand les modifications ne concernent pas l'objet sérialisé.

et ça c'est très embêtant !

est-ce un phénomène connu, un pb dans mon code, existe-il une autre méthode pour sauvegarder facilement des objets dans un format persistant malgré l'update de l'APK ?

les objets sont de ce type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
package truc;
public class LesChoses {
  public static class Chose1 implements Serializable {
    int id;
    String name;
  }
  public static class Chose2 implements Serializable {
    int id;
    String name;
    Chose1 chose1;
  }
  public static class Choses implements Serializable {
    ArrayList<Chose1> choses1 = new ArrayList<Chose1>();
    HashMap<Integer, Chose2> choses2 = new HashMap<Integer, Chose2>();
    public void saveToStream(...);
  }
 
  private static Choses mChoses;
  public static Choses getChose() { 
    ...// singleton
  }
}
NB: le volume de données est suffisamment réduit pour que je ne veuille pas passer par une BDD, je veux juste que ce soit persistant.

Merci