日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android广播 有序 无序,Android全局广播(无序,有序)

發布時間:2023/12/14 Android 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android广播 有序 无序,Android全局广播(无序,有序) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫這篇文章的原因:

最近博主在帶兩個小白學Android,在教廣播的過程中發現了一些問題

大概如下:

1.Android8.0以上廣播需要動態注冊 (靜態注冊無效)

2.Android8.0以上兩個應用間按照以前的操作發送廣播后在另一個沒辦法接收到廣播的情況

3.出現了廣播接收者的搶先或重復問題

在文章最后會有解決辦法!!!!

首先還是按照Android8.0以下來介紹一下廣播

一.無序廣播:啟動方式------>Context.sendBroadcast() (異步)

所有的receivers(接收器)的執行順序不確定,因此所有的receivers(接收器)接收broadcast的順序不確定。

這種方式效率更高,但是BroadcastReceiver無法使用setResult系列、getResult系列及abort(中止)系列API

下面是簡單操作:(以解屏,鎖屏為例)

1.定義一個廣播類

2.對廣播進行注冊(靜態或者動態)

靜態:AndroidMainFest中的application標簽下加上receiver的子標簽(此注釋只是一種比喻!!)

動態:

3.如果是監聽的網絡等其他,記得要加權限

以上是系統的,下面介紹下廣播發送者發送自定義廣播------>sendBroadcast()

二.有序廣播 啟動方式------>sendOrderedBroadcast()

里面兩個參數的就不寫了

至于優先級(-1000到1000)的值 —>值越大越先接收到廣播

靜態:設置intent-fliter的中Priority

動態:直接調用intentFilter.setPriority();

與無序廣播的區別(主要是兩個方法)

1.setResultData() 修改廣播中發送的對象

2.aboryBroadcast() 攔截廣播

解決文章開始的問題:

1.Android8.0以上兩個應用間按照以前的操作發送廣播后在另一個沒辦法接收到廣播的情況

解決辦法:在發送廣播的時候調用setPackage()方法,放入另一個應用的包名(另一個應用中注冊文件package)

2.出現了廣播接收者的搶先或重復問題

解決辦法:靜態注冊和動態注冊,不可同時存在,兩者選其一

本文同步分享在 博客“計蒙不吃魚”(CSDN)。

如有侵權,請聯系 support@oschina.cn 刪除。

本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

總結

以上是生活随笔為你收集整理的android广播 有序 无序,Android全局广播(无序,有序)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。