广播是android是android四大组件之一,这篇文章是我学习本地广播的记录
本地广播:指的是应用内广播,只有本应用内才能监听到的广播,安全性比全局广播好很多
下面是用法:
(1)发送广播:
1.在Activity中声明LocalBroadcastManager类对象
private LocalBroadcastManager localBroadcastManager;//广播管理器
2.在onCreate()方法中 实例化
localBroadcastManager = LocalBroadcastManager.getInstance(this);//获取广播管理器实例
3.在你需要发送广播的地方,发送广播
Intent intent = new Intent("com.parking.LocalBroadcast");
intent.setClass(LoginActivity.this,MainActivity.class);
localBroadcastManager.sendBroadcast(intent);
startActivity(intent);
我这里发送广播的同时顺便跳转了,这里还可以利用intent传一些消息
(2)接收本地广播
1.新建广播管理器,筛选器,自定义内部类接收器对象
/*本地广播*/
private LocalBroadcastManager localBroadcastManager;
private IntentFilter intentFilter;
private LocalReceiver localReceiver;
2.新建内部类,继承于BroadcastReceiver类,并重写onReceive()方法
class LocalReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//showResponse("登录成功");
//textView.setText("登录成功了");
Toast.makeText(MainActivity.this, "验证登录成功", Toast.LENGTH_SHORT).show();
}
}
这里做可以处理接收到广播的逻辑操作,这里这些内部类可以写到一个公共的activity类管理器中,这里我比较粗暴,就直接撸了
3.获取相应的实例,并注册广播
/*获取广播管理器实例*/
localBroadcastManager = LocalBroadcastManager.getInstance(this);
/*实例化筛选器和接受器并注册广播*/
intentFilter = new IntentFilter();//实例化筛选器
intentFilter.addAction("com.parking.LocalBroadcast");//添加监听广播的action
localReceiver = new LocalReceiver();//实例化本地广播接收器
localBroadcastManager.registerReceiver(localReceiver, intentFilter);//注册广播
注意的是这里的action就是你发送广播的那个action,可以自己定义,这个是广播的标识
4.当activity销毁的时候我们也要注销广播的注册,一般我们在onDestroy()方法,这个看你的需求,相应的生命周期,放在对应的地方
@Override
protected void onDestroy() {
super.onDestroy();
localBroadcastManager.unregisterReceiver(localReceiver);
}
差不多就是这些,新手学习记录,多多指教