Android 发送广播

本文详细介绍了Android中广播机制的应用,包括广播的声明、注册、发送及开机广播的监听方法。通过具体实例展示了如何使用Java代码实现这些功能。

一、首先要声明广播

    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver()  
    {  
        @Override  
        public void onReceive(Context context, Intent intent) //onReceive函数不能做耗时的事情,参考值:10s以内  
        {  
            Log.d("scott", "on receive action="+intent.getAction());  
            String action = intent.getAction();  
            if (action.equals("com.scott.sayhi"))  
            {  
                showDialog("on receive action="+intent.getAction());  
            }  
        }  
    };  

二、其次要注册广播,有两种方式:xml注册和代码注册

xml注册:

<receiver android:name="com.scott.sayhi.MyBroadcastReceiver" >
<intent-filter>
<action android:name="com.scott.sayhi" />
</intent-filter>
</receiver>

代码注册:

IntentFilter filter = new IntentFilter();
filter.addAction("com.scott.sayhi");
MyActivity.this.registerReceiver(mBroadcastReceiver, filter);

三、发送广播

    Intent intent = new Intent();  
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
    intent.setAction("com.scott.sayhi");  
    MyActivity.this.sendBroadcast(intent);  

四、收听开机广播

<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
### 实现 Android 广播发送功能 在 Android 中,广播机制允许应用程序之间或者同一应用程序内的不同组件间传递消息。为了实现广播发送,主要依赖于 `Intent` 对象来进行操作[^1]。 #### 创建并发送标准广播 当需要向其他应用或本应用内部模块传达某些事件时,可以创建一个新的 `Intent` 来封装这些信息,并调用 `sendBroadcast()` 方法将其出: ```java // 构建意图对象 Intent intent = new Intent(); intent.setAction("com.example.CUSTOM_BROADCAST"); // 设置动作名称 intent.putExtra("data", "some data to send with broadcast"); // 添加额外的数据到意图中 // 发送广播 context.sendBroadcast(intent); ``` 对于有序广播而言,则应使用 `sendOrderedBroadcast()` 函数替代上述方法。这种方式下,接收者可以根据优先级顺序处理该广播,并且前一个接收者的响应可能会影响后续接收到的内容。 #### 注册广播接收器以监听特定类型的广播 为了让某个组件能够捕获指定类别的广播通知,在清单文件 (`AndroidManifest.xml`) 或动态注册的方式都可以完成此目的。静态方式是在 XML 文件里声明 `<receiver>` 节点;而动态则是利用 Java/Kotlin 代码中的 `registerReceiver()` API 完成临时性的订阅行为[^2]。 例如,针对系统级别的启动完成后触的通知,可以在配置文件中加入如下片段来设置对应的监听逻辑: ```xml <receiver android:name=".BootReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> ``` 此外,如果打算让程序具备震动能力作为反馈效果之一的话,记得事先申请相应的权限许可[^4]: ```xml <!-- 振动器的权限 --> <uses-permission android:name="android.permission.VIBRATE"/> ``` 通过以上步骤即可实现在 Android 设备上构建简单的广播通信体系结构的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值