私のアプリケーションは、フラグメントを使用して、ポートレートモードのListView、またはリストビューと横並びモードの横並びの「詳細」ビューを表示します。 AsyncTaskを起動するActionBarのメニュー項目もあります。問題はAsyncTaskの実行中にユーザーが表示を縦向きから横向きに(またはその逆に)回転させると、AsyncTaskが強制終了されることです。停止からAsyncTaskを修正するには、私はconfigChangesがAndroidManifestに属性を追加:AsyncTaskを使用したフラグメント切り替え
<activity android:name="ListingFragment" android:configChanges="keyboardHidden|orientation" />
しかし、その属性を追加すると、自動的に横長/縦長表示に切り替えるから破片を防ぐことができます。 AsyncTaskを強制終了せずにフラグメントが自動的にビューを切り替える方法はありますか?
私はonRetainCustomNonConfigurationInstance()が推奨されなくなり、ドキュメントがsetRetainInstance()を使用すると言います。 –
これは別の目的のためのものです。 Fragmentインスタンスがそのアクティビティで破棄されないことを意味する 'setRetainInstance(true)'を呼び出すと、それは保持され(渡されます)、新しいアクティビティは新しいフラグメントを作成する代わりにこのフラグメントを取得します。 'onRetain ...'は廃止されましたが、アクティビティdestroy-createサイクルを通してオブジェクトのインスタンスを保持する別の方法を提供していることはわかりません。 – dmon
お役立ち情報その後、onRetainCustomNonConfigurationInstance()を使用します。レスポンスありがとう。 –