安卓开发3——广播应用

实验内容:

1、静态注册一个广播接收器,在开机时用Toast提示“开机成功”,IntentFilter为:

      android.intent.action. RECEIVE_BOOT_COMPLETED

2、自定义广播:

      (1) 发送一个自定义广播,在intent中附加数据(putExtra方法),key为”extraKey”,value为”CustomValue”

      (2) 新创建一个项目,创建BroadcastReceiver子类,接收2中发出的自定义广播,并将附加的数据用log.d打印出来

3、本地广播:

      发送一个本地广播,在intent中附加数据(putExtra方法),key为” extraKey”,value为”LocalValue”

      创建一个BroadcastReceiver子类,接收广播并以Toast显示接收到的值

实验过程:

1、静态注册广播接收器:打开AndroidManifest.xml,在<application>标签内的<receiver>标签中,所有静态广播接收器都是在这里注册。同时,监听系统开机广播需要权限,所以事先需要声明权限。新建BootCompleReceiver类接收,最后用Toast和Log.d输出,整个过程如下:

                                                                                      申明权限:

                                        

                                                                              静态广播接收器注册:

                                      

                                                                新建BootCompleReceiver类接收并显示:

                                           

                                                                          Log.d()和Toast显示结果:

                             

                                                         

2、我把发送自定义广播事件写入按钮btnMyBroadcast中,代码如下图所示,并且创建MyBroadCastReceiver类,用于接收广播,用Log.d()进行提示。需要同上步一样进行静态注册。

                                                                          点击按钮发送自定义广播:

                                   

                                                             创建MyBroadCastReceiver类,用于接收广播:

                                  

                                                        在AndroidManifest.xml内对广播接收器进行注册:

                                  

                                                                   最后接收到广播后用Log.d()打印出来:

                                  

3、把发送本地广播事件写入按钮btnLocalBroadcast中,代码如图所示,不同于静态注册的是,动态注册的广播接收器不是在AndroidManifest.xml中注册,而是在代码中注册,而且在最后一定需要取消注册,方法是在onDestory()中调用unregisterReceiver()来实现。由于不需要在AndroidManifest.xml中注册,本广播可采用内部类的方法,将广播接收器写在主活动中,即LocalReceiver类。最后用Toast输出。

                                                                                       点击按钮发送本地广播:

                                   

                                                                               创建LocalReceiver类用于接收广播:

                                      

                                                                                                  Toast显示广播:

                                                                     

猜你喜欢

转载自blog.csdn.net/h2503652646/article/details/84889889