android:如何在恢复时恢复对象,并在暂停时保存?
我想在暂停时保存一个对象(Myclass),并在应用程序恢复时加载它 我什么都试过了,但都没用 我正在尝试创建一个线程,并在出现问题时使其在我的主要活动上运行。 当我按下后退按钮(退出应用程序)并再次单击应用程序时,它会创建一个新线程,而不会恢复旧线程。使类(MyClass)实现android:如何在恢复时恢复对象,并在暂停时保存?,android,multithreading,object,onresume,onpause,Android,Multithreading,Object,Onresume,Onpause,我想在暂停时保存一个对象(Myclass),并在应用程序恢复时加载它 我什么都试过了,但都没用 我正在尝试创建一个线程,并在出现问题时使其在我的主要活动上运行。 当我按下后退按钮(退出应用程序)并再次单击应用程序时,它会创建一个新线程,而不会恢复旧线程。使类(MyClass)实现可序列化,然后在活动被销毁时将其保存为文件,并在恢复时从文件中还原 public boolean ObjectToFile(String fileName, Object obj){ boolean succes
可序列化
,然后在活动被销毁时将其保存为文件,并在恢复时从文件中还原
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;
}
基本上你不能(也不应该)做你想做的事。如果您有要在用户结束会话*后继续执行的代码,则您的代码应与服务关联运行。然后,代码应该将其工作写入持久性存储,或者您的服务应该为新创建的活动提供一些绑定接口来连接线程
*如果用户支持您的活动,会话将结束。这与用户按HOME键的行为不同,HOME键表示用户希望在返回应用程序时恢复他们正在执行的操作。我不太确定您正在尝试执行的操作。请提供更多详细信息。另外,请查看您可能正在查找的onSaveInstanceState()和onRestoreInstanceState()。就保存和恢复活动状态而言,mkso是正确的。但是,您不应该保存
线程本身:相反,您需要保存线程的状态(例如,如果它正在做一些工作,您可以保存它正在处理的“项目”或类似的内容),然后如果在onCreate()
中获得非空冰柱,则恢复该状态。如果您希望线程继续在后台工作,那么最好使用服务
。mmmm它对我不起作用,因为myclass是正在运行的线程。当我按下后退按钮时,不会停止活动。请不要在Android上使用序列化,它的速度太慢了。请用包裹代替。