系统范围的网络异常处理

时间:2013-10-27 10:00:23

标签: android android-layout design-patterns asynchronous android-asynctask

我正在编写Android客户端/服务器应用程序。 想知道是否有某种模式被推荐用于在应用程序范围内处理网络问题。

该应用程序有多个活动/片段,可以针对服务器端进行相当多的操作(用户触发和自动化)。 我希望能够让用户知道服务器何时无法访问或何时出现某种网络问题,从而允许他重试/取消遇到错误的请求。

将屏幕上的错误消息提升为弹出窗口或从底部/顶部显示的面板不会成为问题。但是如何实现“重试”按钮或在出现错误时选择回退位置?因为它是应用程序范围广泛的,我想在网络层级别上处理它,我现在知道用户在哪个屏幕以及UI状态是什么。

UI使用AsyncTask实例启动所有网络操作。

任何想法/模式/示例都会有所帮助。

1 个答案:

答案 0 :(得分:0)

这是一个指南。

我们假设您有以下课程:

  • 运行网络请求的类
  • NetworkCommand(这包含请求的所有必需信息(GET,POST,PUT ... url,参数等)

  • NetworkCommandManager(根据NetworkCommand对象数据执行HTTP请求)

因此,当管理器使用AsyncTask/Thread运行任何网络命令时,它会收到结果通知以及它是哪个网络命令。因此,您可以在那里处理错误并显示失败的对话框,允许用户重试,然后再次与经理一起运行相同的网络命令。