我有以下广播接收机。wifi连接改变广播接收机重复多次
public class TestNetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String TAG = "TEST:";
if (intent.getAction().equals("android.net.wifi.WIFI_STATE_CHANGED")) {
Log.i(TAG, "Wifi toggled");
} else if (intent.getAction().equals("android.net.conn.CONNECTIVITY_CHANGE")) {
Log.i(TAG, "Network connection changed");
ConnectivityManager cm = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
Log.i(TAG, "Network connecion is:" + networkInfo.getTypeName());
Log.i(TAG, "Detail:"+networkInfo.isFailover());
}
}
}
}
当我打开和关闭的WiFi
I/TEST:﹕ Wifi toggled
I/TEST:﹕ Network connection changed
I/TEST:﹕ Network connecion is:WIFI
I/TEST:﹕ Detail:false
I/TEST:﹕ Network connection changed
I/TEST:﹕ Network connecion is:WIFI
I/TEST:﹕ Detail:false
I/TEST:﹕ Network connection changed
I/TEST:﹕ Network connecion is:WIFI
I/TEST:﹕ Detail:false
I/TEST:﹕ Network connection changed
I/TEST:﹕ Network connecion is:mobile
I/TEST:﹕ Detail:true
I/TEST:﹕ Network connection changed
I/TEST:﹕ Network connecion is:mobile
I/TEST:﹕ Detail:true
我试图做到的,是要知道什么时候该连接出现“移动”或“WiFi”的,是活跃,但只有一次。否则它会运行我的例程3或4次。我试过改变networkInfo.whatever(),但是一切重复3或4或更多或更少的次数。有没有一种方法可以让我知道连接已经改变,而且它只是接收机某处的一次?
大声笑。这完全是我最终做的,你是对的,它根本不是优雅的。好东西,我不是在画一幅画! – 2015-07-23 15:22:21
你能把它标记为正确答案吗?或者至少一些upvote :) – Dantalian 2015-07-23 18:35:51