lwuit.io.Storage очищается после закрытия приложения - PullRequest
2 голосов
/ 05 марта 2012

Я пытаюсь использовать lwuit.io.Storage, он отлично работает, когда приложение работает (я могу сделать crud), но его данные очищаются после закрытия приложения.Я подумал:

  • зарегистрировать мой класс с помощью "Util.register (" Car ", Car.class);"в методе "initVars ()";
  • реализует интерфейс "Externalizable" в классе "Car".// метод getObjectId () возвращает значение «Car»
  • , вызывая «Storage.init (« myProjectName »);»в классе MainMIDlet
  • проверка на правильность инициализации Storage с помощью Storage.isInitialized () в классе MainMIDlet
  • Я храню мои объекты "car" с помощью Vector,используя:

    Car c = new Car("ford", 1918);
    
    Vector v = (Vector) Storage.getInstance().readObject("cars");
    if (v == null) {
        v = new Vector();
    }
    v.addElement(c);
    Storage.getInstance().writeObject("cars", v);
    
    Vector test = (Vector) Storage.getInstance().readObject("cars");
    if (test.lastElement() instanceof Car){
       Car c1 = (Car) test.lastElement();
       System.err.println(c1);
    }
    
  • избегая вызова «Storage.getInstance (). clearStorage ();»в любом месте кода!

  • "Storage.getInstance (). listEntries ();"возвращает один элемент массива, содержащий строку «cars» (даже после перезапуска приложения).

this - мой простой класс "car".

anyидея, что я пропускаю / делаю не так здесь?

заранее спасибо

1 Ответ

2 голосов
/ 06 марта 2012

Я понял, это была глупая ошибка,

Проблема заключалась в реализации внешнего интерфейса, Я звонил " Util .writeUTF (имя);" в методе externalize () и пытается прочитать его с помощью « stream .readUTF ()» в методе internalize.

просто заменил " Util .writeUTF (имя)" на " stream .writeUTF (имя)".

и это сработало.

...