对象I/O流java android

对象I/O流java android,java,android,object,stream,Java,Android,Object,Stream,当我的应用程序在桌面上时,我想将一个对象打印到一个文件中,并在onCreate上读取它。当我关闭应用程序并重新打开它时,对象不在那里。在应用程序中导航时,对象的行为正常,只有在重新启动时才会出现问题 该对象是TList类的实例tl-扩展ArrayList 阅读: 写: @Override protected void onStop() { super.onStop(); FileOutputStream fos; try { fos = open

当我的应用程序在桌面上时,我想将一个对象打印到一个文件中,并在onCreate上读取它。当我关闭应用程序并重新打开它时,对象不在那里。在应用程序中导航时,对象的行为正常,只有在重新启动时才会出现问题

该对象是TList类的实例tl-扩展ArrayList

阅读:

写:

    @Override
protected void onStop() {
    super.onStop();

    FileOutputStream fos;
    try {
        fos = openFileOutput("data_t", Context.MODE_PRIVATE);

        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(tl);
        oos.flush();
        oos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }catch(IOException e){
        e.printStackTrace();
    }
}

如果您的应用程序未被销毁并且再次可见,则您希望在启动后读取它。操作系统将调用onRestart,然后调用onStart。这是建议您放置读取代码的位置。请尝试使用onStart,也可以使用onPause进行写入。TList变为空-空指针
    @Override
protected void onStop() {
    super.onStop();

    FileOutputStream fos;
    try {
        fos = openFileOutput("data_t", Context.MODE_PRIVATE);

        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(tl);
        oos.flush();
        oos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }catch(IOException e){
        e.printStackTrace();
    }
}