私はバックグラウンドで多くの計算をする必要があるアプリケーションで作業しています。
これを行うには、フラグメントからスレッドを開始してハンドラを渡すので、メッセージを戻すことができます。設定が変更されると(画面回転、...)、Androidはアクティビティとフラグメントを再作成します。新しいフラグメントからスレッドへの参照を取得する方法を探しているので、新しいハンドラを渡すことができます。断片を保持せずにフラグメントデータを保持する
Fragment全体を保持することは、私にとってはオプションではありません。横向きモードで別のレイアウトを使用するためです。
私はonRetainNonConfigurationInstance()を使用できません。アクティビティでのみサポートされていますが、スレッドはフラグメント内に存在するためです。
私はonSaveInstanceState()を使用できません。これは基本データ型のみをサポートするためです。
フラグメントが再作成されたときに、バックグラウンドスレッドへの参照を保持する方法はありますか?
これが役立つかどうかを確認してください。https://developer.android.com/reference/android/content/AsyncTaskLoader.html –
@DavidKこれは、スレッドを使用している間にAsyncTaskを使用します。ドキュメントによると、AsyncTaskは「理想的には短い操作(数秒で数秒)に使用するのが理想的です」と言われていますが、アクティビティが実行されている間はスレッドは常に実行されます。 – freundTech
ああ私はそれを知らなかった。次に、Executorなどの進行中のスレッドの1つをチェックします。あるいは、おそらくこれを扱うライブラリを探してみてください。確かに。 –