我有以下廣播接收機。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