简单 注册广播和接收广播

MainActivity{

Mybroadcast mbroadcast;
    Button button,button2,button3;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //注册广播
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.Mybrocat1");
        intentFilter.addAction("com.Mybrocat2");
        mbroadcast=new Mybroadcast();   //实例化处理广播类
        registerReceiver(mbroadcast, intentFilter);  //注册接受者


下面广播发布者可以在其他类:
        button2= (Button) findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent in=new Intent("com.Mybrocat1");
                in.putExtra("name","我是第一条广播");
                sendBroadcast(in);
            }
        });
        button3= (Button) findViewById(R.id.button3);
        button3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent in=new Intent("com.Mybrocat2");
                in.putExtra("name","我是第2条广播");
                sendBroadcast(in);
            }
        });
    }

protected class Mybroadcast extends BroadcastReceiver{


        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action!=null && action.equals("com.Mybrocat1")){
                String name = intent.getStringExtra("name");
                Toast.makeText(MainActivity.this,"收到的第一条广播"+name,Toast.LENGTH_SHORT).show();
            }else if (action!=null && action.equals("com.Mybrocat2")){
                String name = intent.getStringExtra("name");
                Toast.makeText(MainActivity.this,"收到的第二条广播"+name,Toast.LENGTH_SHORT).show();
            }
        }
    }



注销广播
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(mbroadcast);
    }

}

猜你喜欢

转载自blog.csdn.net/hbw020/article/details/51464303