**
记录一期关于“发送自定义广播类”的文章
**一、首先是发送广播(静态方式)
1.1在创建一个xml文件,在其中创建一个Button控件,用于点击后传递广播
- 1.2创建一个传递数据的类,关联到上述的xml文件,然后找到该m_button1控件,并且给该控件设置点击事件(过于简单,省略);
- 1.3使用Intent设置并且传递一个广播
- 使用sendBroadcast发送广播
- 注意:
- 在Intent intent=new Intent(“text”)这段如果改用
- Intent intent=null;
- intent=new Intent(“text”);
-
- 貌似在用户点击按钮后会出现闪退的状况;
到这里已经完成发送广播了!
- 貌似在用户点击按钮后会出现闪退的状况;
- 前面发送了广播,那我们在这里接收广播
- 1.4创建一个接受的广播类,继承BroadcastReceiver
- 1.5因为是静态注册所以要在AndroidManifest.xml中加上一段代码,
注意:
intent-filter中的android:name=“CCTV_1”是你在发送广播的时候传过来的数据哦(对应1.3中的CCTV_1)!
- 1.6接下来在创建的接收广播类中编写代码
- 其中的“Broadcast received”是接收到后弹出来的数据
- 这是一个简单的弹出弹幕
ok 这样就完成了静态自定义发送接收广播了,运行一波吧!
二、下面来看一下动态注册,自发自收
2.1、动态注册是不需要AndroidManifest.xml中加的那段代码的,这边我们把它删掉!
2.2 、在发送广播的界面注册一下:
跟着步骤走
定义全局变量是为了注销而用(一个优秀的程序员一定要为节省内存着想)
2.3现在进行注销
ok,动态实现也完成了!
三、传递数据
3.1传递一个数据,这里很简单;就是在发送广播的类中的点击事件里面,传递一个数据,这里为了演示就使用字符串传递
3.2在接收广播中,接收传过来的数据
四、将接收到的数据显示到界面
接收到数据后我们怎么将传过来的数据,写在界面上呢?
来分析一下,我们将数据传递到广播中,但是广播是不能写界面的;那么为了将传递来的数据显示在界面中,我们就要在接收广播类中写一个接口(为了将界面传递给广播,变相的让广播拥有界面),在广播中执行界面
4.1在接收广播类写一个内部接口(为了将数据传递给广播)并定义一个成员数据,在发送广播界面实现这个接口
先不管xieRu()是什么
4.2将传递数据类的对象传到接收广播类
首先在接收广播类里面写一个方法
在传递数据类中将自己传递到接收广播类中:
4.3将传过来的数据写在界面上
接口DaiLi中的 xieRu方法是为了让传递数据类实现这个方法,从而将传递数据类传递给接收广播类的数据写在界面上;详情看图
4.4最后将数据传到界面上
在传递数据的xml文件中写一个TextView控件并且找到他
最后将数据写入到TextView中
完工啦!!!