2012-01-09 15 views
0

私はレイアウトとランドのレイアウトを使用して、potraitとlandscapeのデザインが異なります。webViewをフラグメント内に置き、setRetainInstance(true)とgoogleのようなURLを与えます。コンフィグレーションが変更されたときに、ローディングを避ける方法を誰にでも教えることができます。 異なるデザインで誰でもこの質問に役立つことができるため、アンドロイド:configchanges = "orientation"setRetainInstanceがアンドロイドの設定変更で動作しません

ありがとうございました

答えて

1

フラグメントが実際にこれをより簡単にすることができます。 Fragment.setRetainInstance(boolean)というメソッドを使用して、フラグメントインスタンスを構成の変更を超えて保持するだけです。これは、ドキュメント内のActivity.onRetainnonConfigurationInstance()の代わりにお勧めします。

何らかの理由で保持されているフラグメントを実際に使用したくない場合は、他の方法があります。各フラグメントにはFragment.getId().によって返された一意の識別子があります。 Fragment.getActivity().isChangingConfigurations()を介してフラグメントが破棄されているかどうかを調べることができます。したがって、AsyncTask(onStop()やonDestroy()など)を停止することを決定した時点で、設定が変更されているかどうかを確認し、フラグメントの識別子の下にある静的なSparseArrayにスティックする場合は、 onCreate()またはonStart()で、使用可能なスパース配列内にAsyncTaskがあるかどうかを調べます。

関連する問題