我应该在执行网络操作之前​​检查网络状态吗?

时间:2013-11-26 17:09:32

标签: android android-permissions

我的应用正在使用HttpURLConnection从网络下载数据,因此它要求INTERNET权限。

我是否还要检查设备是否已连接到网络(通过ConnectivityManagerNetworkInfo),从而将ACCESS_NETWORK_STATE添加到请求的权限,或者我应该只是尝试下载数据并处理异常?

Google的Connecting to the NetworkManaging Network Usage指南都建议开发人员在尝试进行网络操作之前​​检查网络状态以获得“更好的用户体验”,但我记得在阅读教程时(我是目前无法找到)只是要求提出真正不可避免的权限,以免吓跑用户并获得更好的“自我控制”。

所以,

  • 对此有什么最佳做法吗?
  • 不询问许可和处理例外是否存在任何问题?

1 个答案:

答案 0 :(得分:1)

即使您在拨打远程服务之前检查网络可用性,仍然需要在对话期间处理案例连接失败。毕竟在2G上下载几百kB需要几秒钟,你可以随时断开连接(用户甚至可以通过进入飞行模式来打断你)。

让对用户好。以非侵入方式向他们展示错误。