[Android應用開發] 05.廣播和服務

來源:互聯網
上載者:User

標籤:

廣播接收者
  • 現實中:電台要發布訊息,通過廣播把訊息廣播出去,使用收音機,就可以收聽廣播,得知這條訊息

  • Android中:系統在運行過程中,會產生會多事件,那麼某些事件產生時,比如:電量改變、收發簡訊、撥打到電話、螢幕解鎖、開機,系統會發送廣播,只要應用程式接收到這條廣播,就知道系統發生了相應的事件,從而執行相應的代碼。使用廣播接收者,就可以收聽廣播

建立廣播接收者
  1. 定義java類繼承BroadcastReceiver

  2. 在資訊清單檔中定義receiver節點,定義name屬性,指定廣播接收者java類的全類名

  3. 在intent-filter的節點中,指定action子節點,action的值必須跟要接受的廣播中的action匹配,比如,如果要接受打電話廣播,

那麼action的值必須指定為

    <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
  • 因為打電話廣播中所包含的action,就是"android.intent.action.NEW_OUTGOING_CALL",所以我們定義廣播接收者時,

    action必須與其匹配,才能收到這條廣播

  • 即便廣播接收者所在進程已經被關閉,當系統發出的廣播中的action跟該廣播接收者的action匹配時,系統會啟動該廣播接收者所在的進程,並把廣播發給該廣播接收者。

簡訊防火牆
  • 系統傳送簡訊廣播時,是怎麼把簡訊內容存入廣播的,我們就只能怎麼取出來

  • 如果簡訊過長,那麼發送時會拆分成多條簡訊發送,那麼簡訊廣播中就會包含多條簡訊

  • 4.0之後,廣播接收者所在進程如果從來沒啟動過,那麼廣播接收者不會生效

  • 4.0之後,如果系統自動關閉廣播接收者所在進程,在廣播中的action跟該廣播接收者的action匹配時,系統會啟動該廣播接收者所在的進程,但是如果是使用者手動關閉該進程,那麼該進程會進入凍結狀態,再也不會啟動了,直到使用者下一次手動啟動該進程。

廣播的分類無序廣播
  • 所有與廣播中的action匹配的廣播接收者都可以收到這條廣播,並且是沒有先後順序,視為同時收到
有序廣播
  • 所有與廣播中的action匹配的廣播接收者都可以收到這條廣播,但是是有先後順序的,按照廣播接收者的優先順序排序
服務
  • Service

  • 運行於背景一個組件,用來運行適合運行在背景代碼,服務是沒有前台介面,可以視為沒有介面的activity

進程優先順序
  1. 前台進程:擁有一個正在與使用者互動的Activity(onResume方法被調用)的進程

  2. 可見進程:擁有一個可見但是沒有焦點的Activity(onPause方法被調用)

  3. 服務進程:擁有一個通過startService方法啟動的服務

  4. 後台進程:擁有一個不可見的Activity(onStop方法被調用)的進程

  5. 空進程:沒有擁有任何活動的應用組件的進程

電話錄音機電話的狀態

打電話檢測電話狀態,用到的就是廣播機制。

  • 空閑狀態(電話掛斷)

      TelephonyManager.CALL_STATE_IDLE
  • 響鈴狀態

      TelephonyManager.CALL_STATE_RINGING
  • 摘機狀態(通話中)

      TelephonyManager.CALL_STATE_OFFHOOK
錄音機

錄音,就是用到service。

  • 音頻檔案的編碼和格式不是一一對應的

 

 

本站文章為 寶寶巴士 SD.Team 原創,轉載務必在明顯處註明:(作者官方網站: 寶寶巴士 ) 
轉載自【寶寶巴士SuperDo團隊】 原文連結: http://www.cnblogs.com/superdo/p/4912483.html

 

 

[Android應用開發] 05.廣播和服務

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.