我将各种用户帐户存储在保存在 microSD 卡上的文件中的自定义 Object ArrayList中,并使用以下方法加载此文件:
public static ArrayList<User> loadAllUsers() {
if (storageAvailable()) {
ArrayList<User> myList = new ArrayList<User>();
try {
FileInputStream myListUsersSaved = new FileInputStream(baseDir
+ File.separator + fileName);
ObjectInputStream myListUsers = new ObjectInputStream(
myListUsersSaved);
myList = (ArrayList<User>) myListUsers.readObject();
myListUsers.close();
} catch (Exception exc) {
exc.printStackTrace();
}
return myList;
} else {
return null;
}
}
这通常工作正常,但不幸的是,在一些速度较慢的设备中,第一次加载尝试失败,可能是由于访问 microSD 上的数据时延迟,当我打开加载保存的各种配置文件的活动时,该方法第一次返回null和这似乎是空的,如果我第二次尝试重新加载活动,没问题。
有什么建议可以避免这个问题吗?