Android之BroadcastReceiver的使用
一、目標
1、了解什么是BroadcastReceiver
2、掌握BroadcastReceiver的使用
3、了解BroadcastReceiver的生命周期
二、什么是BroadcastReceiver
1、Broadcast(廣播)是一種廣泛運用在應用程序之間傳播消息的機制
a、系統消息
a):Android系統發出的,電池不足、來電信息等
b、自定義消息
a):第三方應用發出的廣播消息
2、什么是BroadcastReceiver
a、廣播消息本質上就是一個Intent對象
b、Intent是一對一的通信,廣播消息是一對多的通信
c、BroadcastReceiver用于接受并處理廣播消息
d、BroadcastReceiver沒有用戶界面
I、借助其他方式和用戶交互,例如:啟動Activity、使用Notification等
三、廣播消息的處理流程
1、廣播消息的處理分為三個環節
a、消息發送
b、BroadcastReceiver注冊
c、消息處理
四、處理系統廣播消息
1、系統廣播都被定義為android.content.Intent中的Action常量
2、利用BroadcastReceiver捕獲系統廣播
I、ACTION_BOOT_COMPLETED可以輕松實現開機后臺程序自動運行
3、系統廣播
?a、android.provider.Telephony.SMS_RECEIVED 短信息 ?b、android.intent.action.NEW_OUTGOING_CALL 外撥電話 ?c、android.intent.action.MEDIA_UNMOUNTED SD卡未掛載 ? d、android.intent.action.MEDIA_UNMOUNTED SD卡未掛載 ? e、android.intent.action.MEDIA_MOUNTED SD卡掛載 ? f、android.intent.action.MEDIA_REMOVED SD卡拔出4、在AndroidManifest.xml文件中增加應用權限聲明
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />5、繼承BroadcastReceiver并實現onReceiver方法
public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent){...} }五、深入消息處理
? 1、無序廣播:sentBroadcast(),效率高,但是消息處理之間沒有關聯、
? 2、有序廣播sendOrderBroadcast(),可以傳遞處理數據
3、持續廣播:sendStickyBroadcast()發送的廣播一直存在
六、BroadcastReceiver的生命周期
1、BroadcastReceiver的onReceiver()方法執行完后,其實例就會被銷毀。
2、如果onReceiver()方法在10秒內沒有執行完,Android會認為程序無響應。
a、–所以BroadcastReceiver不能做比較耗時的操作,否則會彈出“Application No Resource”的對話框
?
轉載于:https://www.cnblogs.com/zhangmawang/p/8086852.html
總結
以上是生活随笔為你收集整理的Android之BroadcastReceiver的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java多线程:乐观锁、悲观锁、自旋锁
- 下一篇: 风禾尽起,盈车嘉穗出自哪里?