今天來給大家介紹一下Android的廣播

2021-06-16 06:55:43 字數 1424 閱讀 4393

廣播一詞相信大家耳聽能熟,比如廣播電台,路由廣播等等。他們共有的乙個特性:從某一處傳送乙個廣播,廣播定製者都能接收到此廣播,如:新聞台發出了廣播,

收音機開戶指定的頻率就能接收到此廣播。我們android所說的廣播出如此,只要廣播從乙個地方發出,註冊廣播的人都能接收到此廣播。我們來看看廣播是如何註冊以及如何接收的吧:

/*** 註冊乙個廣播

*/registerreceiver(broadcast, new intentfilter(action));

/*** 接收廣播後的處理函式

*/private broadcastreceiver broadcast=new broadcastreceiver() }

其中action就是廣播註冊時提供的乙個註冊名字,同時也是傳送廣播所提供的傳送名字。

傳送廣播如下:

sendbroadcast(new intent(action));

到此為止,傳送廣播和接收廣播的方式就完成。即從乙個activity或乙個service裡傳送乙個廣播,註冊過action的廣播都能收到此廣播。

以上是廣播的基礎。但現在有這麼幾個問題:

1.  如果有兩個activity 介面a和b,如果a和b註冊廣播的時候用同乙個action,他們會同時收到action這個廣播嗎?如果a反註冊了廣播action,b介面還能收到action廣播嗎。

2.如果基類s註冊了廣播action,a,b都繼承s,那a和b會分別收到廣播嗎?

3.假如條件成立,他們接收廣播的順序是什麼,如何控制他們的順序

4.假如條件成立,先前接收的廣播怎樣跟下一接收都傳遞資料。

我們來一一解答以上四個問題。

1.回答是肯定的,他們是可以同時收到的,同時反註冊了a後b廣播是不受影響的,原因是a和b都註冊乙個action 這只能表明兩個廣播的action一樣,但不是說明兩      個廣播就是乙個廣播物件,所以a和b都各自註冊了乙個廣播物件,當a反註冊後,只反註冊了a裡面的廣播物件,b廣播物件依然存在,所以b依然可以收到廣播的。

2.是都能接收到的。因為繼承s,就各自有乙個物件,也就每個物件都註冊了乙個廣播。

3.如果條件成立,則他們接收的廣播是按註冊的順序,如果想控制廣播的接收順序,可以通過註冊廣播時提供的       intentfilter. setpriority(int)進行設定估先級,    優先順序越高接收順序越前

4,通過setresult(bundle),**如下  private broadcastreceiver broadcast=new broadcastreceiver() };

/*** 接收廣播後的處理函式

*/private broadcastreceiver broadcast=new broadcastreceiver() };

今天決定介紹一下et mvc

從今天開始決定陸續寫寫et mvc的一些事情,用過了struts,spring mvc,ror等框架後,覺得自已也可以寫寫框架,於是,經過一段時間的編寫,在一些專案上使用後收到很好的效果,覺得可以介紹給大家了。對它命名et mvc是因為et是公司名稱的縮寫,所以沒想到更好名稱之前就暫時叫這個名字了。...

今天給大家普及一下隱藏優惠券

簡單來說就是,商家衝銷量,買家省錢買東西,這麼一件事。主要原因是商家想推廣商品,在一些特殊渠道發放隱藏的優惠券,部分消費者在享受優惠的同時,無形中幫商家刷了銷量和口碑。不明真相的買家看到商品的高銷量和高評價,原價購買了商品,就成了冤大頭。所有領券平台的流程都差不多,大致有以下幾個步驟。1.當你在某寶...

今天說一下Top

top這個關鍵字,大家都不陌生 尤其是很多時候開啟ssms的時候右鍵表名,選擇前1000行的時候,就可以見到編譯出來的語句 select top 1000 from 好 我們先看看top 的語法 top expression percent with ties top 關鍵字支援實際行數 top 5...