我试图显示来自广播接收器的警报对话框片段,但接收器不在将显示片段的活动中(接收器处理此事件上的所有错误广播,无论它是否是活动活动)。
这是我当前的接收器:
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 后无法执行此操作