您的位置:首页 > 移动开发 > Android开发

关于AndroidBroadcastReceiver的注册方式

2016-07-10 21:00 417 查看
本篇文章简单介绍一下android 广播的注册方式,也是自己做一下笔记,以后对广播的理解更加深入后,再详谈,哈哈,,

广播的注册方式

1. 静态方式注册:

要创建一个类继承BroadcastReceiver(广播接收者);

public class CustomBroadcastReaceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//获取启动广播的标记昵称
String actionStr = intent.getAction();
//发送广播的消息
String contextStr = intent.getStringExtra("context");
Toast.makeText(context, contextStr, Toast.LENGTH_SHORT).show();
}
}


然后在Activity中启动,发送广播

public class TextBR extends Activity {

CustomBroadcastReaceiver broadcastReaceiver;
//无论是动态注册广播,获取静注册加广播都需要一个标记,识别
//这个标记“jingtaizhuce”需要在Androidmainferi中添加的。
private static final String ACTION = "jingtaizhuce";
Intent intent = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//静态注册,广播,
intent = new Intent(ACTION);
intent.putExtra("context", "hi");
sendBroadcast(intent);
}


我这里只是为了测试,刚进入界面时候弹出hi这个信息,

//这是一个点击事件
//当你点击时候,又发送一条广播,信息是hello。。。
public void myBroadcaeiver(View view) {
intent.putExtra("context", "hello");
sendBroadcast(intent);
}
}


最后我们要在Androidmainferi里注册一下广播

注意:上面提示到的标记就是在注册广播这里添加进去

<receiver android:name=".textguangbofuwu.CustomBroadcastReaceiver">
<intent-filter android:priority="1000"> <!-- 设置最高优先级 -->
<action android:name="jingtaizhuce" />
</intent-filter>
</receiver>


静态注册广播就完成了,,

动态注册广播 ##’

其实动态注册广播,和EventBust这个挺像的,EventBus就是对广播的一个封装,挺6的一个框架,,可以在网上搜来看看,,

//动态注册
broadcastReaceiver = new CustomBroadcastReaceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ACTION);
registerReceiver(broadcastReaceiver, intentFilter);


注意intentFilter.addAction(ACTION);,这个ACTION要和你送广播时的Action一致,当然ACTION是字符串还是什么随便你。这个无论是静态还是动态都一样,静态动态注册,我的理解就是和布局文件差不多,是要在XML里放一个TextView,还是要用代码动态添加一个TextView,,添加的方式不同,,。。

发布广播

intent = new Intent();
intent.setAction(ACTION);
intent.putExtra("context", "听说还能遇见");
sendBroadcast(intent);


好了,动态,静态注册广播完成。。。啦啦啦啦啦啦啦啦啦!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息