请描述一下Broadcast Receiver。
定义:接收自己或其他App发送的Broadcast
好处:群发消息
使用:code XML
广播分类:无序、有序
回答问题的思路:
是什么
功能/作用/好处
如何使用
各种实现方式的区别
概念:
是什么:接收广播消息, 自己发,
系统发:接收到外部事件,发送广播消息
广播分为:无序(并行) 有序(串行)
intent-filterandroid:priority="3000’
abortbroadcast();
广播 android操作系统的一个事件
有很多广播接收者 ,系统已经实现了.
广播分两种
有序广播
无序广播
指定接收者的广播 . 是不可以被拦截掉的
<intent-filterandroid:priority="1000"> 那个程序的uid 越低越先接受到消息
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
onReceive() 方法.
abortBroadcast();
有序广播有一个特例
sendOrderedBroadcast(intent, receiverPermission, resultReceiver,scheduler, initialCode, initialData, initialExtras);
resultReceiver广播接受者如果我们显示的指定了广播接收者
无论如何都会接受广播时间abortBroadcast(); 的方法不会终止广播时间
SetresultData();
Sticky
sendStickyBroadcast(intent) // 阴魂不散的广播
Wifi设置
用于接收系统的广播通知, 系统会有很多sd卡挂载,手机重启,广播通知,低电量,来短信等,一个apk的安装成功….
手机卫士中自定义一个broadcast receiver
<intent-filter android:><action> sms_received</action></intent-filter>
来获取短信到来的广播, 根据黑名单来判断是否拦截该短信.
画画板生成图片后,发送一个sd挂载的通知,通知系统的gallery去获取到新的图片.
Intentintent = newIntent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.getExternalStorageDirectory()));
sendBroadcast(intent);