从GPRS到Wifi已连接时收到三次CONNECTIVITY_CHANGE的广播
接收android.net.conn.CONNECTIVITY_CHANGE广播后,onReceive中通过下面代码判断Wifi是否已连接,总会连续三次输出“Wifi Connected”,也就会连续调用三次doSomething():
我查了一下,应该是这个原因引起的:
从 GPRS 到 WIFI,程序至少会收到3个Broadcast
第一个是连接到WIFI
第二个是断开GPRS
第三个是连接到WIFI
请问我应该怎样处理,才能在从GPRS切换到Wifi的时候,只调用一次doSomething()?
谢谢
ConnectivityManager connManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(wifiInfo.isConnected()) {
Log.v(Constant.APP_NAME, "Wifi Connected.");
doSomething();
}我查了一下,应该是这个原因引起的:
从 GPRS 到 WIFI,程序至少会收到3个Broadcast
第一个是连接到WIFI
第二个是断开GPRS
第三个是连接到WIFI
请问我应该怎样处理,才能在从GPRS切换到Wifi的时候,只调用一次doSomething()?
谢谢
...全文
相关推荐
Android中wifi与数据流量的切换监听详解
(ConnectivityManager.TYPE_WIFI); if (intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE"
Android例子源码GPS、GPRS、WIFI状态判断+SIM卡信息读取.zip
它们可能包括了Activity、BroadcastReceiver和Service等组件,以及对系统广播的监听,比如CONNECTIVITY_ACTION广播,用于检测网络状态的变化。
android_wifi_status
)); ``` 记得在不再需要监听时,要记得注销广播接收器以避免资源浪费。
Android通过ConnectivityManager检查网络状态
监听各种网络连接的状态,如GPRS、WIFI、UMTS等。2. 当网络状态发生变化时,向系统发送广播通知。3. 在网络连接失败时执行故障切换,寻找可用的替代网络。4.
Android中判断有无可用网络的代码(是否是3G或者WIFI网络)
**监听网络状态变化**:可以注册`BroadcastReceiver`监听`CONNECTIVITY_ACTION`广播,当网络状态改变时会收到通知。2.



