接收android.net.conn.CONNECTIVITY_CHANGE广播后,onReceive中通过下面代码判断Wifi是否已连接,总会连续三次输出“Wifi Connected”,也就会连续调用三次doSomething():
[mw_shl_code=java,true] 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();
}[/mw_shl_code]
我查了一下,应该是这个原因引起的:
从 GPRS 到 WIFI,程序至少会收到3个Broadcast
第一个是连接到WIFI
第二个是断开GPRS
第三个是连接到WIFI
请问我应该怎样处理,才能在从GPRS切换到Wifi的时候,只调用一次doSomething()?
[mw_shl_code=java,true] 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();
}[/mw_shl_code]
我查了一下,应该是这个原因引起的:
从 GPRS 到 WIFI,程序至少会收到3个Broadcast
第一个是连接到WIFI
第二个是断开GPRS
第三个是连接到WIFI
请问我应该怎样处理,才能在从GPRS切换到Wifi的时候,只调用一次doSomething()?