如您所知,在编写Android应用程序时,传递类类型非常重要。 一个简单的例子是使用Intent。
Intent i = new Intent(this, MyActivity.class);
因此,如果我可以将类类型信息保存到文件中供以后使用,例如重启后,它会在某些情况下有用。
void saveClassTypeInfo(Class<?> classType, String filename) {
String str = null;
// Some job with classType
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filename);
fos.write(str.getBytes());
fos.close();
} catch (Exception e) {
}
}
如果我可以像上面那样以某种方式保存,那么我将来可以将它放回到这样的意图中。
Intent i = new Intent(this, restoredClassInfoFromFile);
我如何才能完成这种工作?因为Class<?>
不是一个对象,所以我根本不知道从哪里开始。
[编辑] .class也是一个对象,所以我们可以像保存对象一样保存它。
答案 0 :(得分:2)
这可以使用ObjectOutputStream
这里SaveState
是您的自定义类
public static void saveData(SaveState instance){
ObjectOutput out;
try {
File outFile = new File(Environment.getExternalStorageDirectory(), "appSaveState.ser");
out = new ObjectOutputStream(new FileOutputStream(outFile));
out.writeObject(instance);
out.close();
} catch (Exception e) {e.printStackTrace();}
}
public static SaveState loadData(){
ObjectInput in;
SaveState ss=null;
try {
in = new ObjectInputStream(new FileInputStream("appSaveState.ser"));
ss=(SaveState) in.readObject();
in.close();
} catch (Exception e) {e.printStackTrace();}
return ss;
}
中读取对象