lwuit.io.Storage在关闭申请后清除

时间:2012-03-05 16:26:50

标签: java-me storage lwuit externalizable

我正在尝试使用lwuit.io.Storage,它在应用程序运行时工作正常(我可以做crud)但是在关闭应用程序后它的数据会清除。 我考虑过了:

  • 使用“Util.register(”Car“,Car.class)注册我的课程;”在“initVars()”方法中;
  • 在“Car”类中实现“Externalizable”界面。 //“getObjectId()”方法返回“Car”
  • 调用“Storage.init(”myProjectName“);”在MainMIDlet类
  • 检查以确保使用MainMIDlet类中的“Storage.isInitialized()”正确初始化存储
  • 我正在使用Vector存储我的“car”对象:

    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是我简单的“汽车”课程。

知道我错过了什么/做错了吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

我明白了,这是一个愚蠢的错误,

问题在于实现Externalizable接口, 我叫“ Util .writeUTF(name);”在externalize()方法中,并尝试在internalize方法中使用“ stream .readUTF()”读取它。

只需将“ Util .writeUTF(name)”替换为“ stream .writeUTF(name)”。

它已经成功了。