Broadcast Receiver(广播接受者)
广播的作用
系统里面有各种各样的事件发生,它希望我们程序员或者是第三方应用也能知道这个事情的发生,所以以广播的形式发布出来一个通知,我们必须要做好一个广播接收者,才能收到这个广播,知道这个事件
这些事件如: 短信到来的事件 、 开启启动完成的事件、电池电量变更的事件..
如何定义一个广播的接受者
我们要怎么才能收到系统,获取其他APP发出来的广播呢?
分为三步:
1:首先我们自己写一个类extends BroadcastReceiver
2.在清单文件,注册一下,
3,在注册的同时,因为广播有多种,所以,我们也需要指定,我们需要接受什么广播(比如:短信,打电话等等).
通俗的说:这三步就是购买收音机,装电池,调频等.
举一个定义广播接受者的入门示例
需求:监听SD卡的被拔出来的状态.
思路:
SD卡被拔出来的时候,系统会发布一个通知,告诉其他应用,SD卡没有了.
那我们怎么监听这个SD卡状态呢?
这个时候就需要使用到广播接受者了
//首先我们自己写一个类extends BroadcastReceiver
public class SdcardReceiver extends BroadcastReceiver {
//onReceive会在广播来的时候,自动调用
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "存储卡已被拔出", Toast.LENGTH_SHORT).show();
}
}
下面的是清单文件AndroidManifest.xml
//第二步:在清单文件里面注册
<receiver android:name="com.itheima.sdcardstatus.SdcardReceiver">
<intent-filter >
<!--第三步:指定需要监听的广播,这里监听的SD卡拔出来的转台-->
<action android:name="android.intent.action.MEDIA_UNMOUNTED"/>
<!-- 监听SD卡需要指定scheme -->
<data android:scheme="file"/>
</intent-filter>
</receiver>