Я создаю мобильное приложение с 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
}
}
}
}