ブロードキャスト レシーバーからアラート ダイアログ フラグメントを表示しようとしていますが、レシーバーはフラグメントを表示するアクティビティに含まれていません (レシーバーは、アクティブなアクティビティであるかどうかに関係なく、このイベントでブロードキャストされたすべてのエラーを処理します)。
これが私の現在の受信機です:
private BroadcastReceiver mHttpPostReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getStringExtra("Error") != null) { // error occurred
// called from a fragment in another activity
NetworkError.show(((Activity) context).getFragmentManager(), error);
}
}
};
ただし、関数の context パラメータは、それが含まれるアクティビティの現在のコンテキストであり、このアクティビティが画面上にないため、ランタイムの不正な状態例外を引き起こします。ブロードキャストのように、呼び出し元の関数のコンテキストを送信する方法はありますか? または、これを実装する必要がある別の方法はありますか?
現在発生している特定のエラーは次のとおりです。
java.lang.IllegalStateException: onSaveInstanceState の後にこのアクションを実行できません