onRestoreInstanceState() で Vector を復元するために ClassCastException がランダムに発生します。通常、ベクトルの復元はうまく終了しますが、例外が発生することがあります。
アクティビティがバックグラウンドに移行して破棄されたときに発生すると思いますが、よくわかりません。
何か案は?ありがとうございました。
Stack<LocationInfo> mLocationInfoVector;
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putSerializable("locationInfos", mLocationInfoVector);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
if (savedInstanceState.getSerializable("locationInfos") != null) {
@SuppressWarnings("unchecked")
mLocationInfoVector= (Stack<LocationInfo>) savedInstanceState.getSerializable("locationInfos");
}
super.onRestoreInstanceState(savedInstanceState);
}
追加した:
例外ログを添付するのを忘れていました。あれは
java.lang.ClassCastException: java.util.ArrayList cannot be cast to java.util.Stack