2014年4月6日日曜日

NoUIFragmentの使い所

FragmentはUIを持つものとUIを持たないものがある
ご存知の方も多いと思う。

このUIを持たないFragmentは使い所でちょっと厄介なところがある。
Activityの遷移が絡む場合だ。

永続データをキーにするならまだしもBundleであれこれやろうとすると失敗する。
Loaderの戻り値をBundleに入れて、NoUIFragmentからActivityの再起動を試みたところエラーが出た。Activityのライフサイクルにひっかかったようだ。
ランチモードはデフォルト。使用したメソッドはActivityクラスのrecreate()。

試しにNoUIFragmentではなくActivityのonActivityResultでrecreate()を使用したところ、Bundleの値を保持してonCreateが呼ばれた。

Activityの遷移が絡むところではNoUIFragmentは避けようと思った。

以下、おまけ。
テストで使ったBundleを保持できるActivityの再起動のソース。

0 件のコメント:

コメントを投稿