我需要在我的应用程序中处理几个Wifi场景的建议。
假设我的应用程序正在运行且设备暂时保持空闲状态并且已进入睡眠模式。在睡眠模式下,wifi会自动关闭。现在,当设备从睡眠模式恢复时,需要一些时间才能打开Wifi状态。 现在,如果在此期间应用后台服务正在发出http请求,我们如何处理该场景?
OR
假设如果Wifi不可用,设备正在尝试连接到GPRS / 3G,如果在此期间用户/后台服务正在发出http请求,我们如何在代码中处理它?</ p>
答案 0 :(得分:2)
您可以列出网络接口,其类型和连接状态:
获取所有网络接口:
NetworkInfo[] networkInfos = ConnectivityManager.getAllNetworkInfo();
检查网络接口的类型
networkInfo.getType() == ConnectivityManager.TYPE_MOBILE // or TYPE_WIFI
的状态
networkInfo.getState() == NetworkInfo.State.CONNECTED
如果您需要连接,则可以:
一个。如上所述检查网络状态。
湾注册接收器以在网络连接发生变化时获取更新信息:Intent action for network events in android sdk
如果在没有连接时尝试获取HTTP数据,则会出现异常。您可以抓住这个并稍后重试,但选项2更好。