确定和监视连接状态
重复报警和后台服务的一些最常见的用途是安排互联网资源,缓存中的数据,或执行长时间运行下载的应用程序数据的定期更新。但是,如果你没有连接到互联网,或者连接速度太慢,完成下载,为什么唤醒设备在所有计划更新?
您可以使用ConnectivityManager
检查你实际上是连接到互联网,如果是这样,是什么类型的连接的地方。
确定如果你有一个Internet连接
有没有需要安排一个基于互联网上的资源的更新,如果你没有连接到互联网。下面的代码片断演示了如何使用,ConnectivityManager
查询活动的网络,并确定它是否有互联网连接。
ConnectivityManager cm =
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
boolean isConnected = activeNetwork.isConnectedOrConnecting();
确定您的Internet连接类型
它也可以检测当前可用的互联网连接的类型。
可以提供的数据,WiMAX,移动的Wi-Fi和以太网连接设备连接。通过活动的网络查询的类型,如下图所示,你可以改变刷新率的基础上的可用带宽。
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
移动数据成本往往显着高于无线网络连接,所以在大多数情况下,您的应用程序的更新率应降低对移动连接的时候。同样,下载的显著尺寸应暂停,直到你有一个Wi-Fi连接。
使您的更新,这一点很重要,你听,以恢复他们的互联网连接已经建立的连接的更改。
显示器的连接的更改
的的的ConnectivityManager
广播CONNECTIVITY_ACTION
(的“android.net.conn.CONNECTIVITY_CHANGE”
)连接的详细信息时,已经改变了行动。听这些变化和恢复(或暂停)后台更新,你可以注册一个广播接收器,在您的清单。
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
更改设备的连接可以是非常频繁的广播触发每次移动之间移动数据和无线网络连接。因此,这是很好的做法,监控广播只有当你先前暂停更新或下载,以恢复他们。一般就足够简单地检查互联网连接,在开始更新前,有没有,暂时停止了进一步的更新,直到连接恢复。
这种技术需要切换广播接收器,您已经declard的清单中的,这是在下一课中。