BroadcastReceiver广播接听器的初步认识,本地广播的发送与接收(2)
注意:本地广播一定要生命一个LocalBroadcastManager的对象,用来注册广播器和发送广播,解除广播器
具体代码如下:
public class Main2Activity extends AppCompatActivity {
private TextView tv;
private LocalBroadcastManager manager;
private BroadcastReceiver receiver;
@Override
protected void onCreate(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 = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
tv.setText("幻化万千戏红尘");
}
};
manager.registerReceiver(receiver,intentFilter);//用管理者注册广播器
}
public void send(View view){
manager.sendBroadcast(new Intent("weihuan"));//管理者发送广播,发送的名称要和定义意图过滤器的名称一致
}
@Override
protected void onDestroy() {
super.onDestroy();
manager.unregisterReceiver(receiver);//管理者解除广播器
}
}
效果:
当我们点击button的方法send时,TextView的“hello world”就会改变成“幻化万千戏红尘”。