當前位置:首頁 » 安卓系統 » android50廣播

android50廣播

發布時間: 2022-05-18 14:46:38

1. android 什麼時候用到廣播

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

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

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

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

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

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

2. Android開發中廣播的作用及注冊方式,

廣播是一種運用的在應用程序之間傳輸信息的機制。而BroadcastReceiver 是對發送出來的Broadcast進行過濾接受並響應的一類組件。廣播既可以在清單文件AndroidManifest.xml 中注冊,也可以在運行時的代碼中使用Context.registerReceiver()進行注冊。只要是注冊了,當事件來臨的時候,即使程序沒有啟動,系統也在需要的時候啟動程序。

3. android中的廣播怎麼使用

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

4. android有序廣播和無序廣播的區別

BroadcastReceiver所對應的廣播分兩類:普通廣播和有序廣播。
普通廣播:通過Context.sendBroadcast()方法來發送,它是完全非同步的。
所有的receivers(接收器)的執行順序不確定,因此所有的receivers(接收器)接收broadcast的順序不確定。
這種方式效率更高,但是BroadcastReceiver無法使用setResult系列、getResult系列及abort(中止)系列API

有序廣播:是通過Context.sendOrderedBroadcast來發送,所有的receiver依次執行。
BroadcastReceiver可以使用setResult系列函數來結果傳給下一個BroadcastReceiver,通過getResult系列函數來取得上個BroadcastReceiver返回的結果,並可以abort系列函數來讓系統丟棄該廣播,使用該廣播不再傳送到別的BroadcastReceiver。
可以通過在intent-filter中設置android:priority屬性來設置receiver的優先順序,優先順序相同的receiver其執行順序不確定。
如果BroadcastReceiver是代碼中注冊的話,且其intent-filter擁有相同android:priority屬性的話,先注冊的將先收到廣播。

有序廣播,即從優先順序別最高的廣播接收器開始接收,接收完了如果沒有丟棄,就下傳給下一個次高優先順序別的廣播接收器進行處理,依次類推,直到最後。如果多個應用程序設置的優先順序別相同,則誰先注冊的廣播,誰就可以優先接收到廣播。
這里接收簡訊的廣播是有序廣播,因此可以設置你自己的廣播接收器的級別高於系統原來的級別,就可以攔截簡訊,並且不存收件箱,也不會有來信提示音。
實現方法是:
<receiver Android:name=".SmsReceiver">

<intent-filter android:priority="100">

<action android:name="android.provider.Telephony.SMS_RECEIVED"/>

</intent-filter>

</receiver>
裡面的android:priority="100"就是設定廣播接收器的級別,這個值從1000~-1000,數值越大,優先順序別就越高。
希望幫助到你~~感謝採納

5. android廣播機制的廣播機制的三要素

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

6. android里的廣播和通知有什麼區別

1、廣播
android通過廣播來實現不同進程間的通信;對應於廣播(broadcat)還有一個廣播接收器(broadcast receiver);每個廣播指定了對應的action 、 type等信息,每個接收器根據這些信息來過濾是否自己要接收的廣播
2、通知
Notification是Android中常用的一種通知方式,當有未讀簡訊或者未接電話的時候,屏幕的狀態欄就會有提示圖標,這時可以下拉狀態欄來讀取通知。在使用微信的時候(微信在後台運行),如果有新消息時便會發出聲音提示,狀態欄也有相應的微信提示
3、安卓中廣播和通知的關系
廣播是接收請求,通知是把處理結果告訴用戶

7. android 面試題

1、前言 
  6 月  26  日,  Google Android  發布了  NDK  ,引起了很多發人員的興趣。  NDK  全
稱:   Native  Development  Kit  。下載地址為: 
http://developer.android.com/sdk/ndk/1.5_r1/index.html  。 
2、誤解 
  新出生的事物,除了驚喜外,也會給我們帶來一定的迷惑、誤解。 
2.1、誤解一:  NDK  發布之前,  Android  不支持進行  C  開發 
  在 Google  中搜索  「NDK」  ,很多  「Android  終於可以使用  C++  開發  」  之類
的標題,這是一種對  Android  平台編程方式的誤解。其實,  Android  平台從誕生起,就已
經支持  C  、   C++  開發。眾所周知,   Android  的  SDK  基於  java  實現, 這意味著基於  Android 
SDK  進行開發的第三方應用都必須使用  Java  語言。但這並不等同於 「  第三方應用只能使
用  Java」  。在  Android  SDK  首次發布時,  Google  就宣稱其虛擬機  Dalvik  支持  JNI  編程
方式,也就是第三方應用完全可以通過  JNI  調用自己的  C  動態庫,即在  Android  平台上,  
「Java+C」  的編程方式是一直都可以實現的。 
  當然這種誤解的產生是有根源的:在 Android SDK  文檔里,找不到任何  JNI  方面的
幫助。即使第三方應用開發者使用  JNI  完成了自己的  C  動態鏈接庫(  so  )開發,但是  so 
如何和應用程序一起打包成  apk  並發布?這裡面也存在技術障礙。我曾經花了不少時間,
安裝交叉編譯器創建  so  ,並通過  asset (資源)方式,實現捆綁  so  發布。但這種方式只
能屬於取巧的方式,並非官方支持。所以,在  NDK  出來之前,我們將  「Java+C」  的開發
模式稱之為灰色模式,即官方既不聲明 「  支持這種方式  」  ,也不聲明 「  不支持這種方
式  」  。 
2.2、誤解二:有了  NDK  ,我們可以使用純  C  開發  Android  應用 
  Android SDK 採用  Java  語言發布,把眾多的  C  開發人員排除在第三方應用開發外
(  注意:我們所有討論都是基於「  第三方應用開發  」  ,  Android  系統基於  Linux  ,系
統級別的開發肯定是支持  C  語言的。   )。 NDK  的發布,許多人會誤以為,類似於  Symbian  、 
WM  ,在  Android  平台上終於可以使用純  C  、  C++  開發第三方應用了!其實不然,  NDK 
文檔明確說明:  it is not a good way  。因為  NDK  並沒有提供各種系統事件處理支持,也沒
有提供應用程序生命周期維護。此外,在本次發布的  NDK  中,應用程序  UI  方面的  API  也
沒有提供。至少目前來說,使用純  C  、  C++  開發一個完整應用的條件還不完備。 
 
3、NDK  是什麼 
 
對 NDK  進行了粗略的研究後,我對  「NDK  是什麼  」  的理解如下: 
 
1、NDK  是一系列工具的集合。 
 
NDK 提供了一系列的工具,幫助開發者快速開發  C  (或  C++  )的動態庫,並能自動
將  so  和  java  應用一起打包成  apk  。這些工具對開發者的幫助是巨大的。 
NDK 集成了交叉編譯器,並提供了相應的  mk  文件隔離  CPU  、平台、  ABI  等差異,
開發人員只需要簡單修改  mk  文件(指出 「  哪些文件需要編譯  」  、 「  編譯特性要求  」 
等),就可以創建出  so  。 
NDK 可以自動地將  so  和  Java  應用一起打包,極大地減輕了開發人員的打包工作。 
2、NDK  提供了一份穩定、功能有限的  API  頭文件聲明。
 
  oogle 明確聲明該  API  是穩定的,在後續所有版本中都穩定支持當前發布的  API  。
從該版本的  NDK  中看出,這些  API  支持的功能非常有限,包含有:  C  標准庫(  libc  )、
標准數學庫(  libm  )、壓縮庫(  libz  )、  Log  庫(  liblog  )。 
G
 
4、NDK  帶來什麼 
 
1、NDK  的發布,使  「Java+C」  的開發方式終於轉正,成為官方支持的開發方式。 
使用 NDK  ,我們可以將要求高性能的應用邏輯使用  C  開發,從而提高應用程序的執
行效率。 
使用 NDK  ,我們可以將需要保密的應用邏輯使用  C  開發。畢竟,  Java  包都是可以反
編譯的。 
NDK 促使專業  so  組件商的出現。(樂觀猜想,要視乎  Android  用戶的數量) 
2、NDK  將是  Android  平台支持  C  開發的開端。 
  NDK 提供了的開發工具集合,使開發人員可以便捷地開發、發布  C  組件。同時,  
Google 承諾在  NDK  後續版本中提高  「  可調式  」  能力,即提供遠程的  gdb  工具,使我
們可以便捷地調試  C  源碼。在支持  Android  平台  C  開發,我們能感覺到  Google  花費了
很大精力,我們有理由憧憬 「C  組件支持  」  只是  Google Android  平台上 C  開發的開端。
畢竟,   C  程序員仍然是碼農陣營中的絕對主力,將這部分人排除在  Android  應用開發之外,
顯然是不利於  Android  平台繁榮昌盛的。

8. android中的廣播是什麼意思

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

9. 簡述在android中如何發送廣播消息

1.發送廣播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中創建一個內部類MyBroadcastReceiver擴展BroadcastReceiver,並在其中實現onReceive方法。
3.在Activity中聲明一個MyBroadcastReceiver類型的成員變數,並注冊:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完後要記得釋放
unregisterReceiver(receiver);

註:1和2中的 BroadcastAction要是同一個Action

10. Android 5.0 以後對發廣播做了哪些限制和改動

不能使用setAction();了,只能用Intent intent = new (this,OtherClass.class);

熱點內容
php游戲後台 發布:2025-08-18 05:34:05 瀏覽:61
安卓手機怎麼看不了電池健康值 發布:2025-08-18 05:27:48 瀏覽:299
php表格顯示資料庫數據 發布:2025-08-18 05:20:44 瀏覽:720
提供固定ip的雲伺服器 發布:2025-08-18 05:14:25 瀏覽:746
codeblockslinux編譯 發布:2025-08-18 05:14:24 瀏覽:676
編譯程序比較復雜所以執行率高 發布:2025-08-18 05:13:50 瀏覽:172
計算機軟體編程 發布:2025-08-18 05:13:50 瀏覽:699
vcenter搭建域伺服器 發布:2025-08-18 05:08:49 瀏覽:511
serv文件怎麼上傳伺服器 發布:2025-08-18 05:07:16 瀏覽:57
sql欄位非空 發布:2025-08-18 05:05:47 瀏覽:682