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", "    !");

         
        }
    }
        //                ,                   。
	//        ,       ,          。

좋은 웹페이지 즐겨찾기