2
空值I存儲在自定義對象的ArrayList保存在SD卡上的文件不同的用戶帳戶,我加載此文件與後續的方法:延遲的microSD的負載導致第一次加載
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這似乎是空的,如果我嘗試第二次重新加載活動,沒問題。
任何建議,以避免這個問題?
您可能不應該將帳戶詳細信息存儲在外部存儲器上,因爲這不僅僅存在於您發現的不可靠信息中,而且可以通過系統上的任何其他應用程序閱讀甚至修改。 –
@ChrisStratton你是對的,但是文件中保存的不是明智的數據,而只是一些緩存的信息。 – Silverstorm
@Sivlerstorm - 它仍然可能是錯誤的位置。或者你在談論很多兆字節的信息? –