2011-05-10 8 views
0

Je sauvegarde les données dans le magasin de disques. Si l'application est en cours d'exécution, cela fonctionne correctement, mais lorsque je redémarre, les données d'aplication dans le magasin d'enregistrements sont perdues.Problème de magasin d'enregistrements Java ME

Voici ma commande de charge:

  try { 
      int i=1; 
      display.setCurrent(list2); 
      RecordStore RS = RecordStore.openRecordStore("recordStore", true); 
      RecordEnumeration re= RS.enumerateRecords(null, null, true); 
      adresaURL ad = new adresaURL(); 
      System.out.println("nacteno"); 
      while(re.hasNextElement()){ 
       byte br[] = RS.getRecord(i); 
       ad.setPopis(new String(br)); 
       br = RS.getRecord(i+1); 
       ad.setUrl(new String(br)); 
       System.out.println(ad.getPopis()); 
       System.out.println(ad.getUrl()); 
       i+=2; 
       adresy.addElement(ad); 
       list2.append(ad.getPopis(), null); 
       System.out.println("nacteno2");   
      } 
     recordStore.closeRecordStore(); 
     } catch (Exception e) { 
     } 
+1

Et le bloc 'catch' vide est une idée terrible! Vous ne serez même pas averti si vous avez un problème, vous devriez ** au moins ** mettre un logging ou 'e.printStackTrace()' là! –

Répondre

1

Ouais ça ne marchera pas.

Si vous utilisez un RecordEnumeration pour parcourir votre RMS (tel que vous êtes), vous devez utiliser RecordEnumeration.nextRecord() pour récupérer les données d'enregistrement. Vous utilisez RecordStore.getRecord().

RecordEnumeration.nextRecord() avance votre RecordEnumeration par un. Comme vous ne l'appelez jamais, votre boucle:

while (re.hasNextElement()) { 
    ... 
} 

ne finira jamais!

+0

ok je le change, mais le problème est toujours là. Il n'explique pas pourquoi la boucle ne commence pas.nacteno2 n'est pas écrit sur la console – ontik

+0

Vous n'avez pas expliqué que c'était votre problème! – funkybro

+0

Des exceptions sont-elles levées? Mettez un 'System.out.println()' dans votre bloc 'catch'. – funkybro