四大组件之BroadcastReceiver

    xiaoxiao2026-10-04  9

    •Context •sendBroadcast(Intent intent) : 发送一般广播 •sendOrderedBroadcast(Intent intent) : 发送有序广播 •registerReceiver(receiver, intentFilter) : 注册广播接收器 •unRegisterReceiver(receiver) : 解注册广播接收器 •BroadcastReceiver •onReceive(Context context, Intent intent) : 接收到广播的回调 •abortBroadcast() : 中断广播的继续传播 •boolean isOrderedBroadcast() : 判断是否是有序广播

    常见系统广播

    • 收到短信广播: android.provider.Telephony.SMS_RECEIVED

    • 开机完成广播: Intent.ACTION_BOOT_COMPLETED

    •应用被卸载广播 : Intent.ACTION_PACKAGE_REMOVED

    •手机锁屏 :Intent.ACTION_SCREEN_OFF

    •手机开屏 :Intent.ACTION_SCREEN_ON

    编写广播接收器类

    •广播接收器类都必须继承于BroadcastReceiver类 public class MyBroadcastReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent){ //处理广播 } }

    注册广播接收器

    方式一: 配置文件注册(静态注册) <receiver android:name="com.atguigu.t6_br.MyBroadcastReceiver"> <!--priority指定当前receiver的优先级, 值是0-1000, 越大越好 --> <intent-filter android:priority="500"> <action android:name="com.atguigu.t6_br.mybroadcastreceiver"/>//<span style="font-family: Arial, Helvetica, sans-serif;">为发送广播时所传的action</span> </intent-filter> </receiver> 方式二: 硬编码注册(动态注册) MyBroadcastReceiver2 receiver2 = new MyBroadcastReceiver2(); IntentFilter filter = new IntentFilter(action);//action 为发送广播时所传的action registerReceiver(receiver2, filter);

    发送两种类型的广播

    1.发送 一般广播

    •context.sendBroadCast(Intent intent)

    2.发送 有序广播

    •context.sendOrderedBroadcast(Intent intent)

    3.区别两种广播

    转载请注明原文地址: https://ju.6miu.com/read-1312596.html
    最新回复(0)