microSD カードのファイルに保存されたカスタム オブジェクト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を返し、これは空のように見えますが、アクティビティを 2 回目にリロードしようとしても問題ありません。
問題を回避するための提案はありますか?