android 四大组件—BroadcastReceiver

无序广播(普通广播) 和 有序广播(Ordered Broadcast)

1. 无序广播(普通广播)

Intent intent = new Intent("com.example.MY_BROADCAST");

sendBroadcast(intent);

2. 有序广播

Intent intent = new Intent("com.example.MY_ORDERED_BROADCAST");

sendOrderedBroadcast(intent, null); // 第二个参数是权限

系统会根据接收者的 priority 从高到低依次调用 onReceive()

中断广播:abortBroadcast();

修改结果:setResultExtras(Bundle);

获取前一个接收者的结果:getResultExtras(true)。

静态注册(Manifest 中声明)

复制代码
<receiver
    android:name=".BootReceiver"
    android:enabled="true"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
    </intent-filter>
</receiver>

class BootReceiver : BroadcastReceiver() {
    override fun onReceive(context: Context, intent: Intent) {
        if (intent.action == Intent.ACTION_BOOT_COMPLETED) {
            // 开机完成
        }
    }}

动态注册(代码中注册)

val receiver = object : BroadcastReceiver() {

override fun onReceive(context: Context, intent: Intent) {

// 处理广播

}}

// 注册registerReceiver(receiver, IntentFilter("MY_ACTION"))

// 解绑(必须)unregisterReceiver(receiver)

功能:接收并响应广播(系统或应用发出)。

相关推荐
传奇开心果编程7 分钟前
【Jetpack Compose基础语法学与练】第8课 rememberSaveable,页面旋转/系统重建保留状态
android·学习·ui·kotlin·android jetpack
>Andre<26 分钟前
UFS5.0标准中文全译·卷一:范围、术语与架构
android·linux·嵌入式硬件
事圆则缓1 小时前
Java 8 Lambda、Stream、Optional 与 Android 边界:从回调语法到运行时兼容
android·java
mmsx1 小时前
Android 地图十万要素不卡顿:空间网格 + 渐进式加载的移动端实践
android·大数据·opengl
Godikov3 小时前
Android 工业终端保活实战:前台服务 + 开机自启 + 更新自启的三重保障
android
字节暗面3 小时前
SO加固强度怎么量化?腾讯ACE与FairGuard静态分析实测
android·逆向
终端安全笔记5 小时前
描述文件、企业证书、MDM 不是三个名字,是三层
android·ios·智能手机
字节暗面5 小时前
一次游戏安全SO静态分析记录:腾讯ACE与FairGuard加固强度对比
android·逆向工程·游戏加固
传奇开心果编程5 小时前
【Jetpack Compose基础语法学与练】第9课 SideEffect副作用 + LaunchedEffect,处理异步任务和生命周期
android·学习·ui·kotlin·android jetpack
2401_833269307 小时前
RecyclerView多布局详解
android