BroadcastReceiver广播接听器的初步认识,本地广播的发送与接收(2)

来源:互联网 发布:看门狗2柯比湾重要数据 编辑:程序博客网 时间:2024/05/22 11:47

BroadcastReceiver广播接听器的初步认识,本地广播的发送与接收(2)

注意:本地广播一定要生命一个LocalBroadcastManager的对象,用来注册广播器和发送广播,解除广播器

具体代码如下:

 

public classMain2Activity extendsAppCompatActivity {

    privateTextView tv;
    private LocalBroadcastManagermanager;
    private BroadcastReceiverreceiver;
    @Override
    protected voidonCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        tv= ((TextView) findViewById(R.id.tv));
        manager= LocalBroadcastManager.getInstance(this);//声明一个本地广播管理者
        IntentFilter intentFilter =new IntentFilter();
        intentFilter.addAction("weihuan");//自定义一个意图过滤器,
        //本地动态声明一个广播接收器对象
        receiver= newBroadcastReceiver() {
            @Override
            public voidonReceive(Context context,Intent intent) {
                tv.setText("幻化万千戏红尘");
            }
        };
        manager.registerReceiver(receiver,intentFilter);//用管理者注册广播器
    }
    public voidsend(View view){
        manager.sendBroadcast(newIntent("weihuan"));//管理者发送广播,发送的名称要和定义意图过滤器的名称一致
    }
    @Override
    protected voidonDestroy() {
        super.onDestroy();
        manager.unregisterReceiver(receiver);//管理者解除广播器
    }
}

 

效果:

当我们点击button的方法send时,TextView的“hello world”就会改变成“幻化万千戏红尘”。

原创粉丝点击