我正在构建一个Android应用程序,通过http api调用与我们的服务器交换数据。在许多情况下,用户抱怨应用程序运行缓慢或根本不运行。
最常见的原因是网络连接不良(低3g / wifi信号或拥挤的公共wifi)。
检测错误连接的最佳方法是什么?一旦我能够检测到错误的连接,就可以使用图标或Toast消息来通知用户该情况。
我正在使用HttpUrlConnection进行api调用。
答案 0 :(得分:7)
我认为你可以使用ConnectivityManager。调用getActiveNetworkInfo(),然后在收到的NetworkInfo对象上调用getDetailedState()。您可以检查连接状态以及是否为VERIFYING_POOR_LINK,但我不知道此状态处于活动状态。
此外,您可能希望按Detect Connection Changes。
中所述收听网络更改答案 1 :(得分:1)
我可能会使用延迟。在您收到请求时以及请求完成时节省时间。如果您看到的数字太高,请弹出警告。如果您要下载大文件,您可能希望切换到吞吐量(您传输的传输速度)。
答案 2 :(得分:1)
据我所知,http是"无连接" ..
你应该集中精力减少流量的大小..(压缩,划分......等)
如果你真的想测试连接,我猜你应该做ping ...每隔x秒..然后如果ping不好你可以警告用户..