回転時にまつわる問題。
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"); }
なぜか落ちなくなった。
↑の分を足すだけで解決した。
わけわからない・・・・
追記:ダメでした