廣播接收器

2021-09-10 19:46:41 字數 2161 閱讀 7048

靜態註冊

靜態註冊是指在清單檔案裡面直接寫。

動態註冊

動態註冊就是在傳送廣播的activity裡面寫

//動態註冊

mybroadcasreceivera mybroadcasreceivera = new mybroadcasreceivera();

intentfilter intentfilter = new intentfilter();

//"android.intent.action.my_broadcast"為廣播名

//設定優先順序為10

// intentfilter.setpriority(10);

intentfilter.addaction("android.intent.action.my_broadcast");

this.registerreceiver(mybroadcasreceivera,intentfilter);

注意:因為靜態註冊和動態註冊的廣播接收器我們起的名字一樣,所以它們都能接收到廣播。

無序廣播

無序廣播就是所有的廣播所有的廣播接收器都能接收到廣播,不存在優先順序高低的問題,內容都是同時接收到。

有序廣播

與優先順序有關,優先順序高的先接收到,然後優先順序低的再接收到。從優先順序高的流向優先順序低的,當然,優先順序高的也可截斷廣播,讓廣播從這個開始,不會再流向優先順序低的廣播。

//無序廣播

sendbroadcast(intent);

//有序廣播

sendorderedbroadcast(intent,null);

//在此截斷廣播。廣播的內容不會流向比這個優先順序低的廣播接收器。。。

abortbroadcast();

還有一種特殊情況,當動態註冊的廣播和靜態註冊的廣播並存時,不管優先順序大小,動態的廣播總會先執行。

下面奉上完整**

清單檔案裡面的**,兩個廣播接收器,乙個傳送廣播的activity

傳送廣播的activity

import android.content.intent;

import android.content.intentfilter;

import android.os.bundle;

import android.view.view;

import android.widget.button;

public class mianactivityf extends activity

});} }

下面是註冊的兩個廣播接收器。乙個是靜態註冊,乙個是動態註冊

mybroadcasreceivera是動態註冊,mybroadcasreceiverb是靜態註冊

import android.content.broadcastreceiver;

import android.content.context;

import android.content.intent;

import android.util.log;

import android.widget.toast;

public class mybroadcasreceivera extends broadcastreceiver }

import android.content.broadcastreceiver;

import android.content.context;

import android.content.intent;

import android.util.log;

import android.widget.toast;

public class mybroadcasreceiverb extends broadcastreceiver }

還有乙個是activity的布局檔案

<?xml version="1.0" encoding="utf-8"?>

就這樣。

Android學習 廣播接收器

常規性事件接聽器 case r.id.btnsendmsg intent i new intent this,myreceiver.class 註冊接收器後就不能使用顯式intent,需使用下面的隱式方法,無註冊的話使用上面 即可 intent i new intent myreceiver.act...

自定義廣播接收不到(靜態註冊廣播接收器)

問題 按照 第一行 中寫的自定義廣播接收器,採用靜態註冊的方式,在android8.0以及更高的版本中無法收到廣播資訊。需要給intent新增component或者setpackage也行,就是需要更明確的指定處理這個intent的元件資訊。自定義廣播接收器 public class mybroad...

go指標接收器和非指標接收器

type student struct 指標接收器 func s student ageadd1 非指標接收器 func s student ageadd2 指標接收器傳入的是struct本身,非指標接收器傳入的是struct的copy副本 指標接收器可以讀寫struct中的內容,非指標接收器只能讀...