Android4開發入門經典 之 第六部分:Broadcast【私塾線上原創】
Broadcast基本概念
Broadcast是什麼
是一種能在各個應用程式之間傳遞資料的機制。類似於現實中的廣播體系,有廣播方和接收方,雙方的關係是多對多的,之間傳遞的就是Intent物件。
Broadcast能做什麼
1:實現了不同的程式之間的資料傳輸與共享,比如我們的應用想要攔截到簡訊或電話,就可以接收相應的廣播,然後進行處理。
2:起到了一個通知的作用,比如在service中要通知主程式,更新主程式的UI等。
Broadcast有什麼
1:廣播方,就是發出廣播的應用
2:接收方,就是接收相應的廣播資訊並處理的應用
3:Intent物件,廣播方和接收方傳遞資料的物件。
Broadcast Receiver示例
在廣播方需要做兩件事情:一是組織並封裝Intent物件;二是傳送廣播。如下:
java程式碼:
Intent in = new Intent(); in.setAction(Intent.ACTION_EDIT); in.putExtra("broadcast", "test"); HelloWorldActivity.this.sendBroadcast(in); n在接收方需要繼承BroadcastReceiver並做廣播的相應處理 public class MyReceiver extends BroadcastReceiver{ public void onReceive(Context context, Intent intent) { if(intent.getAction().equals(Intent.ACTION_EDIT)){ Toast.makeText(context, "receiver-"+intent.getExtras().getString("broadcast"),Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(context, "receiver-but not edit",Toast.LENGTH_SHORT).show(); } } }
需要在配置檔案AndroidManifest.xml中,在activity後,在application之前,註冊receiver,同時配置intent-filter,示例如下:
java程式碼:
注意:使用這種方式註冊的監聽器,無論這個應用是否執行,都能夠接收到相應的廣播訊息。
也可以通過程式來動態的註冊receiver,同時配置intent-filter,這樣就不需要在配置檔案中配置了,示例如下:
java程式碼:
IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(Intent.ACTION_EDIT); HelloWorldActivity.this.registerReceiver(new MyReceiver(), intentFilter);
要記得在發出廣播前註冊。
可以使用unregisterReceiver方法來取消註冊。
接收簡訊示例
可以使用Broadcast Receiver來接收簡訊,示例如下:
java程式碼:
1:在AndroidManifest.xml中要註冊許可權:2:在MyReceiver上設定IntentFilter 3:在MyReceiver裡面進行簡訊解析 Bundle b = intent.getExtras(); Object[] bjs = (Object[])b.get("pdus"); SmsMessage [] ms = new SmsMessage[objs.length]; for(int i=0;i
Broadcast Receiver開發建議
Broadcast Receiver 的生命週期
Broadcast Receiver物件只在執行onReceive方法期間是有效的,每次執行完成,都會被銷燬掉,下次接收廣播的時候,又會重新建立Receiver物件。
系統內建的Broadcast Receiver可以接收的事件
可以在文件中Intent物件中查詢,裡面有一個“Standard Broadcast Actions”,這裡面的就是可以在Broadcast中使用的。
要確保Intent的名稱空間和類名是獨有的,不會和其他應用的衝突
如果不希望其他的應用傳送的廣播被你的Receiver接收到,可以在Receiver上配置android:exported="false"
視訊配套PPT,視訊地址【 Android4開發入門經典獨家視訊課程】
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26715458/viewspace-717429/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android4開發入門經典 之 第三部分:Activity【私塾線上原創】Android
- Android4開發入門經典 之 第五部分:Service【私塾線上原創】Android
- Android4開發入門經典 之 第八部分:SQLite【私塾線上原創】AndroidSQLite
- Android4開發入門經典 之 第十二部分:最佳實踐【私塾線上原創】Android
- Android4開發入門經典 之 第十部分:多媒體【私塾線上原創】Android
- Android4開發入門經典 之 第四部分:使用者介面【私塾線上原創】Android
- Android4開發入門經典 之 第九部分:Content Provider【私塾線上原創】AndroidIDE
- Android4開發入門經典 之 第十一部分:網路程式設計【私塾線上原創】Android程式設計
- Android4開發入門經典 之 第七部分(1):資料儲存【私塾線上原創】Android
- Android4開發入門經典 之 第七部分(2):資料儲存【私塾線上原創】Android
- Android4開發入門經典 之 第二部分:Android應用的核心基礎【私塾線上原創】Android
- Android4開發入門經典 之 第四部分:使用者介面Android
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- 嵌入式開發 ARM入門經典
- Webpack經典入門Web
- [轉]BI入門經典
- Kafka入門經典教程Kafka
- BI入門經典 (轉)
- 聊聊經典機器學習入門機器學習
- 安卓入門---安卓開發實戰經典1-3章安卓
- Unix 入門經典 筆記筆記
- springboot入門經典Spring Boot
- Python 入門之經典函式例項(二)Python函式
- 《HTML5移動應用開發入門經典》——2.9 測驗HTML
- Python入門經典案例一Python
- 《jQueryMobile入門經典》——2.4 總結jQuery
- 最經典的黑客入門教程黑客
- 學習筆記|AS入門(九) 元件篇之Broadcast Receiver筆記元件AST
- 《Windows Phone 7入門經典之使用Silverlight和XNA開發Windows Phone應用》書評Windows
- 經典加密演算法入門-RSA加密演算法
- 博弈論經典模型解析(入門級)模型
- 《jQueryMobile入門經典》——2.5 問與答jQuery
- 部分JS經典題目解析JS
- 遊戲開發新手入門之DirectX入門(轉)遊戲開發
- Web前端之 CSS入門第六天Web前端CSS
- C語言入門經典(第5版)C語言
- Go語言入門經典第18章Go
- 新手入門經典:Jsp環境配置JS