在我的FragmentActivity中,我正在进行HTTP GET并使用结果更新UI。我正在使用DialogFragment来显示可能的错误(如服务器没有响应等)
问题是,当我通过DialogFragment调用java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
时,我的应用有时会报告show()
,因为用户会在网络返回之前暂停活动。
我的问题是,如果我忽略了show(),如果活动没有恢复,那么错误永远不会显示,我怎样才能添加片段(或将FragmentManager中的片段排队等等)以便FragmentDialog如果用户恢复活动,请在那里吗?
我应该在活动中提出某种标志(保存错误类型和参数)并在onResume()中显示片段吗?或者有一种更简单的方法?
由于
答案 0 :(得分:2)
解决问题的一种方法是将数据与视图分开。
您可以让事件(例如网络响应到达)仅更改您的数据对象。
视图会在要求时显示数据中的内容。
当视图可见(暂停一个)并且数据发生变化时,只需通知它数据发生变化并要求其更新显示内容(无需详细说明更改内容)。