Android之BroadReceiver的使用

2021-07-14 16:08:59 字數 3172 閱讀 1515

今天我們來學習一下broadreceiver這個元件。我們首先來粗略地認識一下broadreceiver這個元件。也就是說,如果有誰向這個元件傳送訊息的話,那麼這個訊息就會被接受到。註冊broadreceiver有倆種方法,一種是靜態的註冊。也就是broadreceiver必須在androidmanifest.xml中進行註冊。但是我們也可以使用動態註冊的方法,所謂的動態註冊就是在androidmanifest.xml中不需要註冊broadreceiver這個元件。我們只需要在broadcastreceiver的乙個類中寫明乙個action就好了。這是要注意的。比如就像下面一樣就可以進行動態的註冊了。

import android.content.broadcastreceiver;

import android.content.context;

import android.content.intent;

/*我們在寫

action

的時候,其實也是有一定的規則的,不是亂寫的。包名

+intent.action+

類名*/

public class myreceiver extends broadcastreceiver

@override

public void

onreceive(context context, intent intent)

}

下面要進行的是就是說明如何進行動態的註冊:
btnstart.setonclicklistener(new view.onclicklistener() 

}});btnstop.setonclicklistener(new view.onclicklistener()

}});

當然,我們註冊完成以後,如果要向這個廣播中傳送訊息的話,那麼傳送的方式和靜態的時候,又是不一樣的。
btnsendmsg.setonclicklistener(new view.onclicklistener() 

});

如果是靜態的的話,那麼註冊***和傳送廣播都是比較簡單的。
intent i = new intent(mainactivity.this, myreceiver.class);

i.putextra("data", "

傳送資料資訊

");sendbroadcast(i)

廣播也是有優先順序的。那麼如果要使優先順序高的廣播接收到訊息後,要阻止訊息向優先順序低的廣播進行傳播的話,應該怎麼做?先看一下androidmanifest.xml中的內容。
<?

xml version=

"1.0"

encoding=

"utf-8"

?>

xmlns:

android

=""package=

>

android

:allowbackup=

"true"

android

:icon=

"@mipmap/ic_launcher"

android

:label=

android

:supportsrtl=

"true"

android

:theme=

>

android

:name=

".mainactivity"

android

:label=

android

:theme=

>

android

:name=

"android.intent.action.main"

/>

android

:name=

"android.intent.category.launcher"

/>

android

:name=

".myreceiver"

android

:enabled=

"true"

android

:exported=

"true"

>

android

:priority=

"10"

>

android

:name=

/>

android

:name=

".myreceiver1"

android

:enabled=

"true"

android

:exported=

"true"

>

android

:priority=

"8">

android

:name=

/>

那麼首先在傳送廣播的時候,必須使用有序廣播的方式,並且在優先順序較高的廣播接收到訊息以後,就必須使用阻止訊息的傳播,具體的**如下:
//有序廣播
intent intent = new intent(myreceiver.action

);intent.putextra("data"

, "hello");

//sendbroadcast(intent);

//

如果是要阻止廣播向優先順序低的廣播進行傳播的話,那麼就需要使用有序廣播

//

也就是需要使用

sendorderedbroadcast(intent, null);

後面的乙個引數一般情況下,

//

都是設定為

null

的。//

sendorderedbroadcast(intent, null);

//阻止訊息向優先順序低的廣播傳播:
@override

public void

onreceive(context context, intent intent)

以上就是關於broadcastreceiver的全部的內容。

android之interpolator的用法詳解

acceleratedecelerateinterpolator 在動畫開始與結束的地方速率改變比較慢,在中間的時候加速 accelerateinterpolator 在動畫開始的地方速率改變比較慢,然後開始加速 anticipateinterpolator 開始的時候向後然後向前甩 anticip...

android之interpolator的用法詳解

android interpolator,經常和scorllercompat 配合使用,scrollercompat 是乙個控制滑動的類 interpolator 也可以通過 animation 的 setinterpolator 進行設定 interpolator 被用來修飾動畫效果,定義動畫的變...

Android之控制項

1.textview文字框的使用 新建乙個專案 model 選中到android 找到你新建的專案 res 移動到layout上新建乙個.xml檔案 片段內容如下 android layout width wrap content android layout height wrap content...