1

在我的 FragmentActivity 中,我正在执行 HTTP GET 并使用结果更新 UI。我正在使用 DialogFragment 来显示可能的错误(如服务器没有响应等)

问题是有时我的应用程序会java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState在我调用show()DialogFragment 时报告错误,因为用户在网络返回之前暂停了 Activity。

我的问题是,如果我在活动未恢复时忽略 show(),则永远不会显示错误,我该如何添加 Fragment(或在 FragmentManager 中排队 Fragment 或类似的东西)以便 FragmentDialog 在那里如果用户恢复活动?

我应该在活动中提出某种标志(保存错误类型和参数)并在 onResume() 中显示片段吗?还是有更简单的方法?

谢谢

4

1 回答 1

2

解决它的一种方法是将数据与视图分开。

您可以让事件(例如到达的网络响应)仅更改您的数据对象。

当被要求时,视图将显示数据中的任何内容。

当视图可见(没有暂停)并且数据发生变化时,只需通知它数据发生变化并要求它更新它的显示(不必详细说明变化是什么)。

于 2013-10-28T09:00:56.763 回答