Android 브로드캐스트 메커니즘 - 동적 등록
2538 단어 방송 메커니즘
유연성 면에서 매우 큰 우세가 있다.
주의해야 할 것은 동적 등록된 방송 수신기는 반드시 등록을 취소해야 한다는 것이다.
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
// intentFilter , add.Action() Action 。
// , 。
// , , 。
intentFilter=new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
// 。
maesReceiver=new MaesReceiver();
// registerReceiver() ,
// Action intentFilter 。
// 。
registerReceiver(maesReceiver,intentFilter);
// WIFI 。
wifiManager=(WifiManager)MainActivity.this.getSystemService(Context.WIFI_SERVICE);
Button button=(Button)findViewById(R.id.button1);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// , , WIFI。
wifiManager.setWifiEnabled(true);
}
});
Button button1=(Button)findViewById(R.id.button2);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// WIFI。
wifiManager.setWifiEnabled(false);
}
});
}
@Override
protected void onDestroy(){
super.onDestroy();
// unregisterReceiver() 。
unregisterReceiver(maesReceiver);
}
// , , 。
class MaesReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context,Intent intent){
ConnectivityManager connectivityManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo=connectivityManager.getActiveNetworkInfo();
if (networkInfo!=null&& networkInfo.isAvailable()){
Toast.makeText(context," ",Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(context," ",Toast.LENGTH_SHORT).show();
}
Log.d("TAG", " !");
}
}
// , 。
// , , 。