我想在暂停时保存一个对象(Myclass),并在应用程序恢复时加载它。
我尝试了一切,但没有任何作用。
我正在尝试创建一个线程,并在问题出现时让它在我的主要活动上运行。 当我按下后退按钮(退出应用程序)并再次单击应用程序时,会创建一个新线程并且不会恢复旧线程。
答案 0 :(得分: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;
}
答案 1 :(得分:0)
基本上你不能(也不应该)做你想做的事。如果您希望在用户结束会话*后继续执行代码,则您的代码应与服务相关联地运行。然后代码应该将其工作写入持久存储,或者您的服务应该允许新创建的Activity的某些绑定接口与Thread连接。
*如果用户支持我们的活动,则会话结束。这与用户按下HOME键的行为不同,这表示用户想要在他们返回您的应用程序时恢复他们正在做的事情。