四大元件 廣播

2022-09-06 11:27:16 字數 2305 閱讀 4974

android 中每個程式都可以對自己需要的廣播進行註冊,這樣的話就能就收到註冊廣播所傳送的內容。

這些廣播可以是系統的也可以其他應用程式的。

廣播分兩種型別:

標準廣播:完全非同步的廣播,發出廣播後所有註冊這個廣播的程式都會在同一時刻收的這條廣播。

有序廣播:是一種同步執行的廣播,在廣播發出後同一時刻只能有乙個廣播接收器接收這條廣播,只有這個接收器中的邏輯執行完畢後,廣播才會繼續傳遞。廣播是有先後順序的,優先順序高的廣播接收器先接收到廣播,可以通過來設定優先順序,並且還可以通過abortbroadcast();將這條廣播截斷。

註冊廣播的兩種方式:動態 註冊、靜態註冊

動態註冊可以自由的控制註冊和登出,但是必須得在程式執行之後才可以接收到廣播。

首先宣告網路許可權

建立乙個networkchangereceiver類繼承自broadcastreceiver

class networkchangereceiver extends broadcastreceiver  else 

}}

然後mainactivity重註冊廣播

private networkchangereceiver networkchangereceiver; //接收器

@override

protected void oncreate(bundle s**edinstancestate)

@override

protected void ondestroy()

未啟動程式的情況下就可以接收到廣播

首先宣告許可權

通過android studio 來快捷的建立乙個廣播接收器。

右鍵包名 --》new--》other--》broadcast receiver ,接著會彈出建立視窗,我們可以設定兩個屬性,

這兩個屬性分別是:

exported :是否允許這個廣播接收器接收本程式以外的廣播;

enabled :是否啟用這個廣播接收器。

接著就幫我們建立好了 myreceiver,

public class myreceiver extends broadcastreceiver 

@override

public void onreceive(context context, intent intent)

}

我們只需要在 onreceive() 寫入我們想要執行的邏輯就行。

注意:onreceive()方法中不要在執行過多邏輯或者耗時操作,而且該方法中不允許開啟執行緒,

並且清單檔案中自動建立了註冊**

android:name 指定註冊哪乙個廣播接收器

中新增我們要監聽的 action

intent intent=new intent("com.tiger.broadcasttest.mytest");

sendbroadcast(intent);

這樣的話所有監聽com.tiger.broadcasttest.mytest這條廣播的接收器都會受到這條訊息。

另外因為我們是通過intent進行傳遞的,我們還可以攜帶一些資料給其他廣播接收器。

intent intent=new intent("com.tiger.broadcasttest.mytest");

sendorderedbroadcast(intent,null);

4.receiver 中開啟活動

如果想要在廣播接收器中開啟活動需要 在intent中新增 flag_activity_new_task,否則會報錯,因為需要乙個棧來儲存開啟互動

@override

public void onreceive(context context, intent intent)

5.receiver 中開啟服務
@override

public void onreceive(context context, intent intent)

Android四大元件之廣播

有序廣播 普通廣播不能中斷,所有監聽這個廣播的都能收到資訊。有序廣播可以中斷。粘性廣播 粘性廣播要為了解決,在傳送廣播,在傳送廣播之後,動態註冊的接收者,也能收到廣播。生命週期 廣播收者的生命週期是非常短暫的,在接收到廣播的時候建立,onreceive 方法結構之後銷毀。開機啟動 android.i...

四大元件(四) content provider

content provider相當於是程式與程式之間的介面。讓原本不可能通訊的程式,通過內容提供者這個橋梁變得可以通訊。定義乙個類 繼承 contentprovider public class backdoor extends contentprovider 註冊contentprovider ...

android 四大元件

1.activity 2.service 3.contentprovider 應用中的資料,對外進行共享,其它應用可以通過內容提供者,可以訪問到你應用中的資料,對資料進行增刪改查 1 對不同的資料格式,統一了檔案格式和資料訪問api 2 內容提供者要繼承contentprovider類 3 在清單檔...