我使用以下文件序列化方法从磁盘检索我的数据。
public Vector load(String fileName) {
try {
FileInputStream fis = openFileInput(fileName);
ObjectInputStream in = new ObjectInputStream(fis);
Vector obj = (Vector) in.readObject();
in.close();
return obj;
} catch (Exception e) {
Log.e(TAG, e.toString());
}
return null;
}
我有35K大小的文件要序列化。它工作得很完美,但线程猛烈地使用cpu并导致应用程序使用缓慢。我只加载了一次这个文件。
有没有更好的序列化方法,还是有任何不同的方法来处理线程的使用cpu?
答案 0 :(得分:0)
不要使用Vector,使用ArrayList - 不会有任何同步开销。
如果您的操作时间很长,只需在AsyncTask中显示ProgressDialog,例如here。
答案 1 :(得分:0)
您还可以考虑使用Parcel进行序列化,它是更轻量级的存储类型。
http://developer.android.com/reference/android/os/Parcelable.html