Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> 圖解 Android 廣播機制(3)

圖解 Android 廣播機制(3)

編輯:高級開發

; Log.v("BROADCAST_TAG", "myBroadCast");
}

@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
; Log.v("BROADCAST_TAG", "onReceive");
}

}

  android 廣播的生命周期

  在上面的接收器中,繼承了BroadcastReceiver 並重寫了它的onReceive 並構造了一個函數,下面通過圖片來一步一步認識 Android 廣播的生命周期。當我點擊一下按鈕,它向android 發送了一個廣播,如下圖:

  這時我們再點擊一下按鈕,它還是會再向 android 系統發送廣播,此時日志信息如下:

lt="" width="660" height="80" />

  下面本人畫一張圖像,描述了android 中廣播的生命周期,其次它並不像Activity 一樣復雜,運行原理很簡單如下圖:

  下面來看一下SDK給出的解釋:

  大意為:如果一個廣播處理完onReceive 那麼系統將認定此對象將不再是一個活動的對象,也就會finished掉它。至此,大家應該能明白 android 的廣播生命周期的原理,代碼也不用多介紹,很簡單的一個發送廣播並處理廣播的Demo。

  android 如何判斷並篩選廣播?

  前面說過 Android 的廣播有各式各樣,那麼android 系統是如何幫我們處理我們需要哪種廣播並為我們提供相應的廣播服務呢?這裡有一點需要大家注意,每實現一個廣播接收類必須在我們應用程序中的 manifest 中顯式的注明哪一個類需要廣播,並為其設置過濾器,如下圖:

  Tip:actio n 代表一個要執行的動作,在Andriod 中有很action 比如 ACTION_VIEW,ACTION_EDIT

  那麼有些人會問了,如果我在一個廣播接收器中要處理多個動作呢?那要如何去處理?   在android 的接收器中onReceive 以經為我們想到的,同樣的你必須在Intent-filter 裡面注冊該動作,可以是系統的廣播動作也可以是自己需要的廣播,之後你之需要在onReceive 方法中,通過intent.getAction()判斷傳進來的動作即可做出不同的處理,不同的動作。具體大家可以去嘗試測試一下。   小結:

  • 在android 中如果要發送一個廣播必須使用sendBroadCast 向系統發送對其感興趣的廣播接收器中。
  • 使用廣播必須要有一個intent 對象必設置其action動作對象
  • 使用廣播必須在配置文件中顯式的指明該廣播對象
  • 每次接收廣播都會重新生成一個接收廣播的對象
  • 在BroadCast 中盡量不要處理太多邏輯問題,建議復雜的邏輯交給Activity 或者 Service 去處理
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved