Я создаю мобильное приложение с J2ME и обнаружил, что к данным, которые я записываю в RecordStore, можно получить доступ, пока программа все еще работает, но они теряются после выхода и перезапуска. Никаких исключений не выбрасывается, данные просто теряются.
ОБНОВЛЕНИЕ: спасибо всем за ваши предложения. Я использую NetBeans в Windows 7. Я не уверен, использует ли он версию WTK, которую я установил ранее, или другую, установленную где-то еще. Я проверил папку WTK на наличие файлов, о которых писал Павел, но не смог их найти. Теперь я тестирую функции, требующие настойчивости, на своем телефоне и все остальное в эмуляторе, но, конечно, было бы намного лучше иметь возможность тестировать все в эмуляторе.
private RecordStore recordStore = null;
public MyMIDlet() {
readStuff(); // output: nothing found in recordStore :(
saveStuff();
readStuff(); // output: stuff
}
private void readStuff() {
try {
recordStore = RecordStore.openRecordStore(REC_STORE, true);
int n = recordStore.getNumRecords();
String stuff;
if (n == 0) {
stuff = "nothing found in recordStore :(";
}
else {
stuff = new String(recordStore.getRecord(1));
}
System.out.println(stuff);
}
catch (Exception e) {
System.out.println("Exception occured in readStuff: " + e.getMessage());
}
finally {
if (recordStore != null) {
try {
recordStore.closeRecordStore();
}
catch (Exception e) {
// ignore
}
}
}
}
private void saveStuff() {
try {
recordStore = RecordStore.openRecordStore(REC_STORE, true);
int n = recordStore.getNumRecords();
byte[] stuff = "stuff".getBytes();
recordStore.addRecord(stuff, 0, stuff.length);
} catch (Exception e) {
System.out.println("Exception occured in saveStuff: " + e.getMessage());
} finally {
if (recordStore != null) {
try {
recordStore.closeRecordStore();
} catch (Exception e) {
// ignore
}
}
}
}