7

多くのフラグメントを保持するビューページャーがあります。アクティビティがバックグラウンドに送信され、リソースが必要になると、OS はアプリまたは少なくとも一部のフラグメントを強制終了します。アクティビティに戻ると、クリーンアップの前に保持していたすべてのフラグメントの新しいインスタンスをアクティビティがアタッチしようとするため、アクティビティがクラッシュし、現在は一部のフィールドが null になっています。これはもちろん、バンドルを使用して状態の保存と復元を適切に実装することで修正できますが、私はそうしたくありません。代わりに、フラグメントの復元を防ぎたいです。OS が GC を送信してフラグメントを破棄したら、それらをまったく再作成する必要がないことを OS に伝える方法はありますか? クリーンアップが発生したら、ユーザーがアイコンをタップして起動したかのように、アクティビティが戻ったときに単純に再作成されるようにします。それを行う可能性はありますか?

ここで提案されたソリューションhttps://stackoverflow.com/a/15683289/552735は機能しません。これにより、例外 java.lang.IllegalStateException: Fragement no longer exists for key f2: index 3 が発生します

4

2 に答える 2