Android_廣播

等待喚醒:
1、使用線程的wait和notify
2、使用內容提供者的notifyChange和registerContentObserver
3、使用廣播
第二種和第三種方式可以進行程序與程序之間的交互
廣播的使用流程:
1、發送方
A.創建Intent
B.設置setAction
C.sendBroadcast --- 發送廣播
2、接收方
A.實現一個接收類 --- extends BroadcastReciver
B.重寫onRecive函數 -- 等廣播接收到時,被回調,執行此函數
C.清單文件內部進行配置 -- 指定action
或者使用代碼方式進行配置:
a.創建IntentFilter對象
b.爲IntentFilter添加屬性
c.創建接收者對象
d.註冊廣播registerReceiver(Reciver對象,filter);
e.解除註冊的廣播
系統內置廣播
1、獲取系統內置廣播使用的Action
2、獲取Intent存儲數據的相關信息 --- 鍵
外撥電話
action ---- NEW_OUTGOING_CALL
權限 ------ PROCESS_OUTGONING_CALL
接收短信 
action ---- android.provider.Telephony.SMS_RECEIVED
pdus
電話呼入 -- 
action  --- PHONE-STATE
權限 ------ READ_PHONE_STATE
自定義廣播
接收者有優先級:
取值[-1000,1000]
異步發送
不確定誰先接收到
接收者設置了優先級,也是按照優先級發送的
異步發送如果優先級高的攔截廣播會報錯
效率高
有序發送
按照優先級進行發送
優先級高的可以攔截廣播
效率低


經測試:
短信是有序發送,並且沒指定最後的接收者
電話廣播是無序發送


Activity ---- 活動
ContentProvider - 內容提供者 ---- 不同的程序之間共享數據 --- 也可以實現系統之間的喚醒 -- 數據操作喚醒
BroadcastReciver -- 廣播 --- 動作喚醒
程序之間的監聽器
Service ----- 服務 ----- 沒有界面的Activity

發佈了40 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章