【发布时间】:2016-10-27 20:11:44
【问题描述】:
当我的Activity 发出Volley 请求时,我会显示一个带有对话框片段的对话框。在Activity 的非静态内部类的响应处理程序中,我关闭对话框片段:
@Override
public void onResponse(String response) {
MyActivity.this.takeAwayTheDialog();
}
除非我旋转设备,否则一切正常。如果在方向更改完成后返回响应,则MyActivity.this 已被销毁。
可能的解决方案包括:
- 在方向改变之前取消请求
- 使用单独的保留片段来处理网络请求
但它们看起来并不令人满意。我想要一个解决方案,允许系统为我处理方向,以便重新创建活动并加载正确的资源。任何人都可以对上述两种解决方案发表评论或提出其他建议吗?谢谢。
【问题讨论】:
-
在特定活动的清单中,您可以定义`android:configChanges="orientation"`。因此,它不会重新启动活动。
-
您可以轻松地覆盖
onOrientationChanged函数,以便在更改方向后进行必要的更改。您可能会在停止上一个 volley 请求后再次调用该请求。 -
只是为了确定,您是否使用
FragmentManager来显示对话框?这样它就可以在配置更改后继续存在。 -
@Mike。在开始网络请求之前,我会显示一个带有
myDialogFragment.show(getFragmentManager(), TAG);的对话框。我在支持片段中称其为,但我提到我在问题中使用了Activity。我的坏...
标签: android android-fragments android-activity orientation android-volley