android系統會發送許多系統級別的廣播,比如螢幕關閉,電池電量低等廣播。同樣應用可以發起自定義“由開發者定義的”廣播。廣播是從一個應用內部向另一個應用傳送訊息的途徑之一。

BroadcastReceiver是一個可以監聽和響應廣播的元件。本文中,我們將會演示如何傳送自定義廣播以及如何通過程式設計和使用Manifest檔案定義一個BroadcastReceiver來監聽這一廣播。

 

目標:

  • 如何傳送廣播
  • 如何建立一個broadcast receiver
  • 如何在Java程式碼中清單檔案註冊接收

環境與工具

  • Android Developer Tools (ADT) (or Eclipse + ADT plugin)
  • AVD Nexus S Android 4.3 “模擬器”
  • Min SDK 8

( 1 )建立佈局UI

 

 

  • res/layout/activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_gravity="center_horizontal"
        android:text="Received Broadcasts" />
    <Button 
        android:id="@+id/btnSendBroadcast"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:layout_gravity="center_horizontal"
        android:text="Send Broadcast"
        />
    <EditText
        android:id="@+id/etReceivedBroadcast"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"

        />

</LinearLayout>

( 2 ) 擴充套件 BroadcastReceiver

  • 建立一個叫做MyReceiver的物件,繼承BroadcastReceiver.
  • 重寫 onReceive() 方法,在EditText中列印intent的活動名稱.
arrow
arrow
    全站熱搜

    beautymm22 發表在 痞客邦 留言(0) 人氣()