導航:首頁 > 操作系統 > android廣播過濾

android廣播過濾

發布時間:2023-06-13 01:30:09

android本地廣播的使用

為了解決廣播的安全性問題,Android引入了本地廣播機制,使用該機制發出的廣播只能在應用程序的內部進行傳遞,並且廣播接收器也只能接收來自本應用程序發出的廣播。

本地廣播是無法通過靜態注冊的方式來接收的。我們知道靜態注冊主要是為了在程序未啟動的情況下能接收廣播,而當我們發送本地廣播的時候,程序肯定是已經啟動的了,所以我們需要動態注冊方式創建接收器。
在這里我們創建一個繼承於BroadcastReceiver的類LocalReceiver。onReceive()處理你接收到的廣播內容,在這里我用Toast來創建一個提示接收到消息的彈窗

在activity_main.xml文件創建一個用於發送廣播的按鈕

首先通過本地廣播管理器LocalBroadcastManager的getInstance()方法獲取一個實例,並分別創建過濾器IntentFilter和自定義接收器LocalReceiver的實例。給IntentFilter的實例添加一個action:localbroadcast(接收的廣播的名稱),然後調用LocalBroadcastManager的registerReceiver()方法進行注冊,並將LocalReceiver的實例和IntentFilter的實例都傳進去。這樣本地監聽器就創建完成了。
調用LocalBroadcastManager的sendBroadcast()發送本地廣播。運行程序,點擊Send Button按鈕,我們可以看到彈窗顯示「This is in LocalReceiver」,說明本地廣播發送和接收成功了。

當然,我們最後一定不要忘了取消注冊。我們可以通過調用unregisterReceiver()方法來實現。至此,Android的標准廣播發送就完成了。

1.發送的廣播只能在本程序內傳遞,不必擔心數據泄露
2.其它程序廣播無法發送到本程序的內部,不必擔心安全漏洞隱患
3.本地廣播比系統全局廣播更加高效

Ⅱ 安卓廣播接收器怎麼判斷是哪個應用發送的想要只接收自身應用廣播,怎麼實現

安卓廣播接收器Intent,它有提供過濾器功能,也就是開發者定義過濾條件,只有是這個條件的廣播才接收,這樣就可以接收指定廣播。這也是安卓廣播的基礎知識功能,具體自己查閱相關資料,很簡單的。

Ⅲ android中通過什麼方法發送無序廣播

起一個線程,每發一個廣播後就sleep一分鍾,如此循環。(或者接受系統的timechanged這個廣播,這個廣播好像一分鍾發一次)。

Android 在發送廣播時的方法 sendBroadcast(Intent)。

①:Intent myIntent = new Intent();——【創建Intent對象】

②:myIntent.setAction(String)——【設置一般的要執行的動作。參數:動作一個動作的名稱,如ACTION_VIEW。應用程序的具體行動,應與供應商的包名作為前綴。】

③:myIntent.putExtra(String,Object)——【廣播中額外發送的數據,String為自定義key,Object表示多種數據類型】

④:sendBroadcast(myIntent);——【發送廣播】

接收廣播

Android在接收廣播的方法是注冊一個廣播接收器 registerReceiver(MyReceiver,IntentFilter)。

①:首先創建MyReceiver類(類名自定義) 繼承 BroadcastReceiver類。——【創建廣播接收器】

②:在MyReceiver中重寫public void onReceive(Context context, Intent intent)方法。這個方法在接收到廣播後觸發。——【重寫處理方法】

③:在Activity或者Service啟動時 onCreate()、onStartCommand()等方法中實例化 MyReceiver類——【啟動時實例化廣播接收器】

④:IntentFilter filter = new IntentFilter();——【創建IntentFilter對象 意圖過濾器】

⑤:filter.addAction(String);——【在過濾器中加入過濾條件,說明接收什麼廣播】

⑥:registerReceiver(cmdReceiver, filter);——【注冊廣播,參數為(廣播接收器,意圖過濾器)】

Ⅳ 12、注冊廣播有幾種方式,這些方式有何優缺點請談談Android引入廣播機制的用意。

  1. 注冊廣播的分類:靜態注冊和動態注冊。

    靜態注冊:在清單文件里直接注冊,從app開啟到app銷毀,一直在接收廣播,接收廣播時間長,但是接收廣播的優先順序低於動態注冊廣播。

    動態注冊:動態注冊,動態銷毀,從onCreate到取消注冊,期間接收廣播,接收廣播時間是短且可控,接收廣播的優先順序高。例如:

    發送廣播:
    Intent i = new Intent();
    i.setAction("ACTION_CLOSE");
    sendBroadcast(i);

    接受廣播:
    onCreate(){

    //注冊廣播的接受者
    IntentFilter filter = new IntentFilter();
    filter.addAction("ACTION_CLOSE_ACTIVITY");
    receiver = new InnerReceiver();
    registerReceiver(receiver, filter);
    }

    private class InnerReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
    //TODO 當前Activity接收到廣播 需要做的事情
    }
    }
    }

    //注銷廣播

    @Override
    protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(receiver);
    }


2.引入廣播的原因:

a) 不同的app之間傳信通用

b)發出一條指定,需要多個Activity都需要有反應


注意:以上僅供參考,如有疑問,請追問,謝謝。

Ⅳ android中什麼時候會選擇用廣播來進行線程間的通信

android中什麼時候會選擇用廣播來進行線程間的通信 Android 多線程 通信

線程中通信就不要用廣播了吧 進程中通信可以用廣播或者aidl

可是,這兩天看到的項目都是這么做的;然後,自己分析了下,覺得一下的理由也是可以成立的;

1.正常情況下我們選擇handler消息機制來進行單向的線程間的通信;(工作線程向主線程發送消息)

因為主線程有現成的handler,而工作線程沒有現成的handler,這樣的話,主線程將handler交給工作線程而讓工作線程將工作的結果交給主線程;

相反,工作線程中沒有現成的handler(事實上是沒有消息隊列,也就是handler沒有綁定到工作線程),那麼,如果開辟的話,代碼角度上是挺麻煩的(相對應廣播機制來說);

2.廣播機制本身就是雙向的(工作線程向主線程發送廣播,主線程向工作線程發送廣播);

//另外,對於像一個activity中通過fragment來進行界面的處理; 我們大多數情況下是採用廣播的機制來實現fragment中adapter的數據的更新;這樣做主要是考慮到工作線程的任務載入完成,而具體的對應刷新的activity可能還沒有啟動;

另外,基於介面隔離原則,如果用handler進行通信的話,則不能很好的滿足這一原則;

你要是周期比較長 用廣播好些吧

應該與周期關系不是很密切。最主要的原因是兩條線成是雙向通信。

Handler類似於P2P的通信。
廣播則類似於一個server端,用來處理分發不同線程的請求,從控制器的角度來說用廣播更好一點。

一般使用Handler的,多用於子線程處理事務,完成時告知主線程這一類的情況。
而類似樓主所說的多條線程之間需要頻繁交互的話,廣播是個很好的選擇,並且結構清晰,只是不知道廣播的性能與handler相比會怎麼樣。

Ⅵ android中的廣播是什麼意思

android的廣播概念和我們日常生活中的電台有相通之處,空氣中有不同頻段,不同電台的廣播,而android系統中就有對應的電池的電量,來電,簡訊還有例如sd卡拔插等等這些廣播的消息發出,這些消息就對應著用收音機調頻時,不同電台的節目。而我們注冊的廣播就類似於我收聽某個電台的節目,比如一個注冊廣播收聽交通廣播,另一個注冊的廣播收聽音樂廣播,那麼怎麼區分是交通廣播還是音樂廣播呢,這就要通過前一章提到的Intent的action來判斷。

Ⅶ android廣播機制的廣播機制的三要素

Android廣播機制包含三個基本要素:廣播(Broadcast) - 用於發送廣播;廣播接收器(BroadcastReceiver) - 用於接收廣播;意圖內容(Intent)-用於保存廣播相關信息的媒介。Broadcast是一種廣泛運用的在應用程序之間傳輸信息的機制。而BroadcastReceiver是對發送出來的Broadcast進行過濾接受並響應的一類組件。

Ⅷ android中的廣播怎麼使用

廣播操作有兩種
1、發送廣播,就是你自己發送出去一個廣播,讓別人接收
2、接收廣播,這個是自己實現一個廣播接收器,接收那些你自己過濾的廣播,然後處理
具體的代碼實現,可以在網上找找

閱讀全文

與android廣播過濾相關的資料

熱點內容
阿里備案買什麼伺服器 瀏覽:261
網路驅動下載到哪個文件夾 瀏覽:481
達內程序員培訓西安 瀏覽:505
人保送車主惠app上怎麼年檢 瀏覽:604
android手機開機密碼 瀏覽:480
linux查看某個進程命令 瀏覽:529
閑置的騰訊雲伺服器 瀏覽:437
rar壓縮包mac 瀏覽:626
php混淆加密工具 瀏覽:581
java把數字拆分 瀏覽:464
如何下載svn伺服器舊版本 瀏覽:559
命令與征服4攻略 瀏覽:914
實數四則運演算法則概念 瀏覽:295
cs16優化命令 瀏覽:873
Minecraft雲伺服器免費 瀏覽:829
png壓縮最小 瀏覽:184
老韓綜app怎麼看不了了 瀏覽:229
只有一個程序員的體驗 瀏覽:323
用伺服器地址怎麼有網 瀏覽:552
路由器伺服器昵稱是什麼 瀏覽:715