有些应用需要连接网络,例如更新后台服务,刷新数据等,最通常的做法是定期联网,直接使用网上资源、缓存数据或执行一个下载任务来更新数据。
但是如果终端设备没有连接网络,或者网速较慢,就没必要执行这些任务。可以使用ConnectivityManager检查是事联网以及当前是何种类型的网络。具体
代码如下:
ConnectivityManager cm = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); boolean isConnected = activeNetwork.isConnectedOrConnecting(); //是否连接网络 boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
移动网络比Wi-Fi消耗的电量更多,所以在多数情况下,应用应该在有移动网络时减少刷新数据的频率,而在WiFi状态时去下载大文件。在网络重新连接时,
如果发现现在的状态是WiFi状态,那么就可以重新启动之前停止的下载操作或者刷新操作。网络连接状态的切换可以通过注册一个广播接受器来完成对网络状态的
监听。
<activity android:name="android.net.conn.CONNECTIVITY_CHANGE"/>