0

我想在暂停时保存一个对象(Myclass),并在应用程序恢复时加载它。

我尝试了一切,但没有任何效果。

当问题出现时,我正在尝试创建一个线程并使其在我的主要活动上运行。当我按下后退按钮(退出应用程序)并再次单击应用程序时,会创建一个新线程并且不会恢复旧线程。

4

2 回答 2

0

使类(MyClass)实现Serializable,然后您可以在活动被破坏时将其保存为文件,并在活动恢复时将其从文件中恢复

public boolean ObjectToFile(String fileName, Object obj){
    boolean success = false;        
    FileOutputStream fos = null;
    ObjectOutputStream out = null;
    try{
        File dir = GetAppDir();
        if(dir != null){
            fos = new FileOutputStream(dir + "/" + fileName);
            out = new ObjectOutputStream(fos);
            out.writeObject(obj);
            out.close();
            success = true;
        }
    }catch(Exception e){}
    return success;
}

public Object FileToObject(String fileName){
    Object obj = null;
    try{
        File dir = GetAppDir();
        if(dir != null){
            File f = new File(dir, fileName);
            if(f.exists() && f.isFile()){       
                FileInputStream fis = null;
                ObjectInputStream in = null;
                fis = new FileInputStream(f);
                in = new ObjectInputStream(fis);
                obj = in.readObject();
                in.close();
            }
        }
    }catch(Exception e){}
    return obj;
}
于 2011-06-21T07:54:57.620 回答
0

本质上你不能(也不应该)做你想做的事。如果您有想要在用户结束会话后继续执行的代码*,您的代码应该与服务关联运行。然后代码应该将其工作写入持久存储,或者您的服务应该允许新创建的活动的一些绑定接口与线程连接。

*如果用户支持我们的活动,则会话结束。这是与用户按下 HOME 键不同的行为,这表明用户希望在返回到您的应用程序时恢复他们正在做的事情。

于 2011-06-25T01:29:44.357 回答