静态注册广播接收器

动态注册的广播接收器可以自由地控制注册与注销,在灵活性方面有很大的优势,但是 它必须要在程序启动之后才能接收到广播,因为注册的逻辑是写在 onCreate()方法中的。解决这个问题,就需要使用静态注册的方式了。
本章节实现让程序接收到开机广播,然后执行onReceiver()方法里的逻辑,如弹出一条提示。

l 1、新建一个Android Application Project项目,命名为SecondBroadcast。创建项目可以通过向导创建,也可以手动创建。手动创建时,记得创建一个布局。该布局命名为activtiy_main

l 2、在MainActivity类中,新建一个 BootCompleteReceiver 继承自 BroadcastReceiver,代码如下:
静态注册广播接收器_第1张图片
图1

l 3、在 AndroidManifest.xml文件中注册
静态注册广播接收器_第2张图片
图2

说明:
•第11行代码,使用uses-permission标签加入一条监听系统开机广播android.permission.RECEIVE_BOOT_COMPLETED权限
•第28~32行代码,使用标签receiver静态注册一个广播接收器。第28行代码,android:name指定具体注册哪一个广播接收器。第30行代码,Android系统启动完成后会发出一条值为android.intent.action.BOOT_COMPLETED的广 播,因此在此处添加了相应的 action。

l 4、运行程序,通过模拟器的 Menu键→System settings→Apps,选择App的名称,可以看到当前程序所拥有的权限,如下图所示。关闭模拟器,重新启动,程序会弹出提示。
静态注册广播接收器_第3张图片
图3

你可能感兴趣的:(Android)