Android 当网络从GPRS切换到Wifi时接收3次广播

Android 当网络从GPRS切换到Wifi时接收3次广播,android,Android,当网络从GPRS切换到Wifi时,我收到了3次android.net.conn.CONNECTIVITY_CHANGE的广播 在onReceive()中,我使用下面的代码判断Wifi是否已连接。但我也收到了3次“Wifi已连接”的消息,doSomething()被调用了3次 ConnectivityManager connManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); N

当网络从GPRS切换到Wifi时,我收到了3次android.net.conn.CONNECTIVITY_CHANGE的广播

在onReceive()中,我使用下面的代码判断Wifi是否已连接。但我也收到了3次“Wifi已连接”的消息,doSomething()被调用了3次

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();
}
我只想收到一条“Wifi已连接”的消息,并且只需调用doSomething()一次。 我该怎么办


多谢各位。对不起,我的英语很差。

创建一个布尔标志值,用于检查消息 如果您想从其他网站访问它,请将其设置为静态 乙二醇

给药后();您可以再次将标志的值更改为false

ClassName.flagConnected = false;

在Receiver类中声明一个整数变量

公共静态int i=0

并将代码置于此条件下

if((++i)%3==1){
//your whole stuff here..
}

我想您可能忘记在onPause/onStop中注销您的广播接收器

好的…但不总是三次…谢谢。但我想永远收到广播…谢谢。
if((++i)%3==1){
//your whole stuff here..
}