当网络从GPRS切换到Wifi时,我收到了3次android.net.conn.CONNECTIVITY_CHANGE的Broadcast。
在onReceive()中,我使用下面的代码来判断Wifi是否连接上。但是我也收到了 3 次“Wifi Connected”的消息,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 Connected”消息,并且只调用 doSomething() 一次。 我该怎么办?
谢谢。抱歉我的英语不好。
最佳答案
创建一个 bool 标志值来检查消息 如果您希望它可以从其他地方访问,请将其设置为静态 例如
public static boolean flagConnected = false;
ConnectivityManager connManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(wifiInfo.isConnected() && flagConnected == false) {
flagConnected = true;
Log.v(Constant.APP_NAME, "Wifi Connected.");
doSomething();
}
在 doSomething() 之后;您可以再次将标志的值更改为 false
ClassName.flagConnected = false;
关于android - 网络从 GPRS 切换到 Wifi 时收到 3 个广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13066438/