Androidネットワークステータスリアルタイムリスナー
2388 ワード
ネットワークステータスのリアルタイムリスニングを実現し、BroadcastReceiverを使用します.自身のAndroidシステムは、ネットワークの状態が変化したときに放送を送信する機能を実現している.ブロードキャスト受信を実現する必要があります.
ブロードキャスト受信者を使用するには、先に登録する必要があります.構築登録方法:
システムの安定性を維持するには、使用する必要がない場合に、ブロードキャスト受信者をログアウトする必要があります.
≪使用|Use|ldap≫:使用するプライマリ・クラスで呼び出されます.
registerReceiver()リスナーを登録し、使用しないで呼び出す
unregisterReceiver()は、登録をキャンセルします.
どれだけの汗を流してどれだけの報いを得て、この世界は実は絶対に公平です.いつまでも自分の生活が终わることを心配しないでください、更に悪いのは自分の生活が始まったことがありません~~
/**
*
*
* @version V1.0
* @author:
* @date: 2016-04-15 18:24
*/
public abstract class ConnectionChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
LogUtils.d(" ");
//
changeNetStatus(true);
} else {
//
changeNetStatus(false);
}
}
public abstract void changeNetStatus(boolean flag);//
}
ブロードキャスト受信者を使用するには、先に登録する必要があります.構築登録方法:
/**
*
*/
private void registerReceiver() {
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
myReceiver = new ConnectionChangeReceiver() {
@Override
public void changeNetStatus(boolean flag) {
//
if (flag) {
mainNetCheckBarTop.setVisibility(View.VISIBLE);// , View
} else {
mainNetCheckBarTop.setVisibility(View.GONE);
// ,
onResume();// onresume , , ,
}
}
};
this.registerReceiver(myReceiver, filter);
}
システムの安定性を維持するには、使用する必要がない場合に、ブロードキャスト受信者をログアウトする必要があります.
/**
*
*/
private void unregisterReceiver() {
if (myReceiver != null) {
this.unregisterReceiver(myReceiver);
}
}
≪使用|Use|ldap≫:使用するプライマリ・クラスで呼び出されます.
registerReceiver()リスナーを登録し、使用しないで呼び出す
unregisterReceiver()は、登録をキャンセルします.
どれだけの汗を流してどれだけの報いを得て、この世界は実は絶対に公平です.いつまでも自分の生活が终わることを心配しないでください、更に悪いのは自分の生活が始まったことがありません~~