2011-05-10 80 views
0

我將數據保存到記錄存儲。如果應用程序正在運行它工作正常,但是當我重新啓動應用程序數據在記錄存儲丟失。Java ME記錄存儲問題

這裏是我的加載命令:

  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

空'catch'塊是一個可怕的主意!如果你有問題,你甚至不會得到通知,你應該至少**在那裏放置一些日誌記錄或'e.printStackTrace()'! – 2011-05-11 07:21:22

回答

1

是啊,這是行不通的。

如果您使用RecordEnumeration遍歷RMS(按原樣),則必須使用RecordEnumeration.nextRecord()來檢索記錄數據。您正在使用RecordStore.getRecord()

RecordEnumeration.nextRecord()將您的RecordEnumeration提高一個。正如你永遠不會說它,你的循環:

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

永遠不會結束!

+0

好的我改變了,但問題仍然存在。它不解釋爲什麼循環不start.nacteno2沒有寫在控制檯上 – ontik 2011-05-11 08:30:08

+0

你沒有解釋這是你的問題! – funkybro 2011-05-11 09:53:49

+0

拋出任何異常?把'System.out.println()'放在你的'catch'塊中。 – funkybro 2011-05-11 09:55:14