回転時にまつわる問題。
DialogFragmentでViewPager使ってるやつだと回転時に
java.lang.IllegalStateException: Activity has been destroyed
で落ちることがある。てかメモリが弱い機種だとすぐ落ちる。
もう
@Override
public int show(FragmentTransaction transaction, String tag) {
try {
return super.show(transaction, tag);
} catch (IllegalStateException e) {
// ignore
}
return -1;
}
@Override
public void show(FragmentManager manager, String tag) {
try {
super.show(manager, tag);
} catch (IllegalStateException e) {
// ignore
}
}
で対応しようとしたけどなんか無理っぽい。
わけわからんなーと思いつつどこで落ちるんだろうと思ってfragmentのサイクルをLOGしてみた
/***
* Activityに関連付けされた際に一度だけ呼び出される
*/
static final String TAG = "FragmentTest";
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
Log.d(TAG, "onAttach");
}
/***
* Fragmentの初期化処理を行う
*/
/***
* Activityの「onResume」に基づき開始される
*/
@Override
public void onResume() {
super.onResume();
Log.d(TAG, "onResume");
}
/***
* Activityが「onPause」になった場合や、Fragmentが変更更新されて操作を受け付けなくなった場合に呼び出される
*/
/***
* フォアグラウンドでなくなった場合に呼び出される
*/
@Override
public void onStop() {
super.onStop();
Log.d(TAG, "onStop");
}
/***
* Fragmentの内部のViewリソースの整理を行う
*/
@Override
public void onDestroyView() {
super.onDestroyView();
Log.d(TAG, "onDestroyView");
}
/***
* Fragmentが破棄される時、最後に呼び出される
*/
@Override
public void onDestroy() {
super.onDestroy();
Log.d(TAG, "onDestroy");
}
なぜか落ちなくなった。
↑の分を足すだけで解決した。
わけわからない・・・・
追記:ダメでした