1

私の FragmentActivity では、HTTP GET を実行し、結果で UI を更新しています。考えられるエラー (サーバーが応答しないなど) を表示するために DialogFragment を使用しています。

問題は、ネットワークが戻る前にユーザーがアクティビティを一時停止したため、DialogFragmentjava.lang.IllegalStateException: Can not perform this action after onSaveInstanceStateを呼び出したときにアプリが報告することがあるということです。show()

私の問題は、アクティビティが再開されない場合に show() を無視すると、エラーが表示されないことです。ユーザーはアクティビティを再開しますか?

アクティビティで何らかのフラグを立てて (エラーの種類とパラメータを保存する)、onResume() でフラグメントを表示する必要がありますか? またはもっと簡単な方法がありますか?

ありがとう

4

1 に答える 1

2

それを解決する 1 つの方法は、ビューからデータを分離することです。

イベント (ネットワーク応答の到着など) でデータ オブジェクトのみを変更することができます。

ビューは、そうするように求められると、データに含まれるものをすべて表示します。

ビューが表示され (一時停止されていない)、データが変更された場合は、データに変更があることを通知し、表示を更新するように依頼します (必ずしも変更の詳細を説明する必要はありません)。

于 2013-10-28T09:00:56.763 に答える