[英]android: how to restore an object, onResume, and save it onPause?
我想暂停保存一个对象(Myclass),并在应用程序恢复时加载它。
我尝试了一切,但没有任何效果。
问题出现时,我正在尝试创建一个线程并使它在我的主要活动上运行。 当我按下后退按钮(退出应用程序)并再次单击该应用程序时,这将创建一个新线程,并且不会继续执行旧线程。
使类(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;
}
本质上,您不能(也不应该)做您想做的事情。 如果您有要在用户结束会话后继续执行的代码*,则您的代码应与服务关联运行。 然后,代码应将其工作写入持久性存储,或者您的服务应允许一些绑定接口,以使新创建的Activity与线程连接。
*如果用户支持我们的活动,则会话结束。 这与用户按下HOME键不同,这表示用户希望在返回到您的应用程序时恢复他们正在做的事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.