【发布时间】:2013-01-17 21:14:28
【问题描述】:
我正在尝试显示来自广播接收器的警报对话框片段,但接收器不在将显示片段的活动中(接收器处理此事件上的所有错误广播,无论它是否是活动活动)。
这是我目前的接收器:
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);
}
}
};
但函数中的上下文参数是它所在的活动的当前上下文,并且由于该活动不在屏幕上,因此会导致运行时非法状态异常。有没有办法像通过广播一样发送调用函数的上下文?或者我应该以其他方式实现它吗?
我目前得到的具体错误是:
java.lang.IllegalStateException: onSaveInstanceState 后无法执行此操作
【问题讨论】:
标签: java android broadcastreceiver android-alertdialog android-context