Android四大组件之一----Broadcast学习心得

本文详细介绍了Android中的广播机制,包括广播的发送与接收方式、配置方法及广播的两种类型:普通广播与有序广播。此外还讲解了如何设置广播的优先级。

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

1.系统底层和应用软件都可以发送广播,通过intent-filter配置的action拦截广播并处理;

2.有两种接受广播的方式:

1)通过配置xml文件(主要方式,一般底层的系统应用和应用软件都是通过此方式接受广播)

例如:

<receiver
            android:name="com.jky.broadcastreceiver.receiver.MyBroadcastReceiver">
            <intent-filter>
                <action android:name="com.jcy" />
            </intent-filter>
</receiver>

2)通过java文件配置

IntentFilter intentFilter = new IntentFilter();

intentFilter.setAction("com,jcy");

registerReceiver(intentFilter);

以上两种方式的效果是一致的,当接收到action为com.jcy的广播时就交给MyBroadcastReceiver的onCreate()方法处理,我们需要重写onCreate()方法

3.放送广播:

 Intent intent = new Intent();
 intent.setAction("com.jcy");
sendBroadcast(intent);

4广播的类型:

 普通广播:广播发出的时候,所有的接收者同时收到。无优先级之分。

 有序广播:有顺序,可以被中断,优先级别在-1000~1000,其实可以写到int最大值:2147483647

设置优先级同样有两种方式:

1)xml中设置:

<receiver
            android:name="com.jky.broadcastreceiver.receiver.SMSBroadcastReceiver"
            >
            <intent-filter
                android:priority="1000">
                <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
            </intent-filter>
        </receiver>

2)java文件中设置

filter.setPriority(1000);

5)因为广播没有任务栈,如果需要启动一个activity需要设置

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

但是如果发送任务或者其他的广播则不需要



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值