发送标准广播和有序广播,以及广播的截断

本文详细介绍了Android中的广播机制,包括标准广播与有序广播的区别、如何创建广播接收器、定义广播发送事件、设置广播优先级以及如何截断广播等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

发送标准广播需要定义一个广播接收器StandardBroadcastReceiver,来看代码:

public class StandardBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        Toast.makeText(context, "接收到了广播", Toast.LENGTH_SHORT).show();
    }
}

当StandardBroadcastReceiver接收到广播会弹出提示消息

接下来我们在定义一个点击按钮事件,来实现广播的发送:

Button button = (Button) findViewById(R.id.button);
        button.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent intent = new Intent("com.example.broadcasttest.STANDARD_BROADCAST");
                sendBroadcast(intent);
            }           
        });

最后我们在AndroidManifest文件中对广播接收器进行注册:

<receiver android:name=".StandardBroadcastReceiver" >
            <intent-filter >
                <action android:name="com.example.broadcasttest.STANDARD_BROADCAST"/>
            </intent-filter>
        </receiver>

好了,这样,一个完整的标准广播发送就完成了。

发送有序广播只需要将按钮点击事件中的sendBroadcast(intent)修改为
sendOrderedBroadcast(intent,null)就好了,null是一个与权限有关的字符串,这里传入null就可以。

既然是有序广播,那么就要有优先级,在AndroidManifest文件中可以对广播接收器进行优先级定义,使用android:priority属性进行声明。如:

 <receiver android:name=".MyBroadcastReceiver" >
            <intent-filter android:priority="100" >
                <action android:name="com.example.broadcasttest.STANDARD_BROADCAST"/>
            </intent-filter>
        </receiver>

截断广播只需要在广播接收器的onReceive()方法中写入
abortBroadcast();就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值