![Android開發(fā)與實踐-Android廣播事件處理BroadcastReceiver_第1頁](http://file4.renrendoc.com/view/53ad2850b2cd6a0fdb12cd880b7dfb50/53ad2850b2cd6a0fdb12cd880b7dfb501.gif)
![Android開發(fā)與實踐-Android廣播事件處理BroadcastReceiver_第2頁](http://file4.renrendoc.com/view/53ad2850b2cd6a0fdb12cd880b7dfb50/53ad2850b2cd6a0fdb12cd880b7dfb502.gif)
![Android開發(fā)與實踐-Android廣播事件處理BroadcastReceiver_第3頁](http://file4.renrendoc.com/view/53ad2850b2cd6a0fdb12cd880b7dfb50/53ad2850b2cd6a0fdb12cd880b7dfb503.gif)
![Android開發(fā)與實踐-Android廣播事件處理BroadcastReceiver_第4頁](http://file4.renrendoc.com/view/53ad2850b2cd6a0fdb12cd880b7dfb50/53ad2850b2cd6a0fdb12cd880b7dfb504.gif)
![Android開發(fā)與實踐-Android廣播事件處理BroadcastReceiver_第5頁](http://file4.renrendoc.com/view/53ad2850b2cd6a0fdb12cd880b7dfb50/53ad2850b2cd6a0fdb12cd880b7dfb505.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章.Android廣播事件處理BroadcastReceiver8.1BroadcastReceiver簡介
BroadcastReceiver顧名思義是指廣播接收器,它和事件處理機制類似,只不過事件處理機制是程序組件級別的(例如,某個按鈕的單擊事件),而廣播事件處理機制是系統(tǒng)級別的。到目前為止我們可以使用Intent來啟動一個程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個系統(tǒng)級別的事件廣播來傳遞消息。我們可以在你的應(yīng)用程序中實現(xiàn)BroadcastReceiver來監(jiān)聽和響應(yīng)這些廣播的Intent。事件的廣播比較簡單,同樣還是構(gòu)建Intent對象,然后調(diào)用sendBroadcast()方法將廣播發(fā)出。事件的接收是通過定義一個繼承BroadcastReceiver的類來實現(xiàn)的,繼承該類后覆蓋其onReceive()方法,在該方法中響應(yīng)事件。8.1BroadcastReceiver簡介Android系統(tǒng)中定義了很多標準的BroadcastAction來響應(yīng)系統(tǒng)廣播事件。例如,ACTION_TIME_CHANGED(時間改變時觸發(fā))、ACTION_BOOT_COMPLETED(系統(tǒng)啟動完成后觸發(fā))、ACTION_PACKAGE_ADDED(添加包時觸發(fā))、ACTIONB_ATTERY_CHANGED(電量低時觸發(fā))。當然,我們也可以自己定義BroadcastReceiver接收廣播事件。8.2自己定義BroadcastReceiver來處理廣播事件自己定義一個廣播是比較簡單的。首先在你的程序組件里構(gòu)建你要廣播的Intent,使用sendBroadcast方法發(fā)送出去。其次定義一個廣播接收器,該廣播接收器繼承BroadcastReceiver,并且覆蓋onReceive()方法來響應(yīng)事件。最后注冊該廣播接收器,我們可以在代碼中注冊,也可以在AndroidManifest.xml配置文件中注冊。下面通過一個實例來演示Intent發(fā)出廣播和BroadcastReceiver處理廣播的過程,實例步驟說明如下。
(1)創(chuàng)建一個工程“Chapter08_BroadcastReceiverl",在“com.amaker.ch08.app”包中創(chuàng)建一個MainActivity。在該類的頂部聲明一個字符串定義廣播Action,聲明一個Button對象響應(yīng)單擊事件發(fā)出廣播。在OnCreate()方法中設(shè)置當前布局視圖,實例化8.2自己定義BroadcastReceiver來處理廣播事件Button對象,為Button添加單擊監(jiān)聽器,在onClick()方法中創(chuàng)建Intent對象,為其設(shè)置Action屬性和Extra屬性,使用該Intent發(fā)出廣播。packagecom.amaker.ch08.app;
importcom.amaker.ch08.app.R;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widget.Button;8.2自己定義BroadcastReceiver來處理廣播事件publicclassMainActivityextendsActivity{
//定義一個Action常量
privatestaticfinalStringMY_ACTION="com.amaker.ch08.action.MY_ACTION";
//定義一個Button對象
privateButtonbtn;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
//設(shè)置當前布局視圖
setContentView(R.layout.main);
btn=(Button)findViewById(R.id.Button01);
//為按鈕設(shè)置單擊監(jiān)聽器
btn.setOnClickListener(newOnClickListener(){8.2自己定義BroadcastReceiver來處理廣播事件
publicvoidonClick(Viewv){
//實例化Intent對象
Intentintent=newIntent();
//設(shè)置Intentaction屬性
intent.setAction(MY_ACTION);
//為Intent添加附加信息
intent.putExtra("msg","地瓜地瓜,我是土豆,收到請回復(fù),收到請回復(fù)!");
//發(fā)出廣播
sendBroadcast(intent);
}
});
}}8.2自己定義BroadcastReceiver來處理廣播事件(2)在工程的res\layout目錄下創(chuàng)建一個布局文件main.xml,在其中添加一個Button組件。<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent">
<Buttonandroid:text="發(fā)出廣播..."
android:id="@+id/Button01"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
</LinearLayout>8.2自己定義BroadcastReceiver來處理廣播事件(3)在工程的“com.amaker.ch08.app”包中定義一個MyReceiver類,該類繼承BroadcastReceiver類,覆蓋onReceive()方法來接收廣播并顯示收到的消息。packagecom.amaker.ch08.app;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.widget.Toast;publicclassMyReceiverextendsBroadcastReceiver{
@Override
publicvoidonReceive(Contextcxt,Intentintent){
8.2自己定義BroadcastReceiver來處理廣播事件
//從Intent中獲得信息
Stringmsg=intent.getStringExtra("msg");
//使用Toast顯示
Toast.makeText(cxt,msg,Toast.LENGTH_LONG).show();
}}8.2自己定義BroadcastReceiver來處理廣播事件(4)在工程的AndroidManifest.xml配置文件中聲明廣播接收器組件<receiverandroid:name="MyReceiver"><intent-filter>
<actionandroid:name="com.amaker.ch08.action.MY_ACTION"/>
</intent-filter>
</receiver>8.2自己定義BroadcastReceiver來處理廣播事件程序運行結(jié)果如圖8.1所示
圖8.1測試廣播事件8.3系統(tǒng)廣播事件的處理除了上面我們自己定義的廣播事件,Android系統(tǒng)還提供了很多標準廣播Action。這些廣播是系統(tǒng)自動發(fā)出的,我們直接定義事件接收器進行接收就可以使用這些系統(tǒng)消息了。常見的標準廣播Action常量如表8.1所示。8.3系統(tǒng)廣播事件的處理
下面我們通過實例來看看如何接收系統(tǒng)發(fā)出的廣播,本實例我們通過接收系統(tǒng)啟動完成(ACTION_
BOOT_COMPLETED)廣播來測試系統(tǒng)廣播事件。接收系統(tǒng)發(fā)出的廣播,我們不需要自己再定義發(fā)出廣播的Intent,只需要定義接收器就可以了。實例步驟說明如下。(1)在8.2節(jié)的工程基礎(chǔ)上,在“com.amaker.ch08.app”包中創(chuàng)建一個MyReceiver類,該類繼承BroadcastReceiver覆蓋onReceive()顯示系統(tǒng)啟動完成廣播信息。8.3系統(tǒng)廣播事件的處理publicclassMyReceiver2extendsBroadcastReceiver{
@Override
publicvoidonReceive(Contextcontext,Intentintent){
//顯示廣播信息
Log.i("my_tag","BOOT_COMPLETED~~~~~~~~~~~~~~~~");
}}(2)在工程的AndroidManifest.xml配置文件中注冊該接收器,注意這里<intent-filter>中的<action>屬性必須是“ent.action.BOOT_COMPLETED”,才能接收系統(tǒng)啟動完成廣播事件。8.3系統(tǒng)廣播事件
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設(shè)計類合同協(xié)議書
- 軟件產(chǎn)品開發(fā)與生命周期管理作業(yè)指導書
- 2025年聊城道路貨運駕駛員從業(yè)資格證考試
- 2025年咸寧道路貨運駕駛員從業(yè)資格證考試題庫
- 2024-2025學年高中政治課時作業(yè)12博大精深的中華文化含解析新人教版必修3
- 2024-2025學年度九年級物理全冊15.3串聯(lián)和并聯(lián)教學設(shè)計3新版新人教版
- 2024-2025學年高中英語Unit2LanguageSectionⅦWriting-調(diào)查報告教案含解析牛津譯林版必修3
- 2024年春八年級物理下冊第十章浮力章末小結(jié)與提升分層精煉新版新人教版
- 2024年新教材高中生物課時素養(yǎng)評價十八6.3.2隔離在物種形成中的作用含解析新人教版必修2
- 蘇科版數(shù)學八年級上冊聽評課記錄《1-3探索三角形全等的條件(1)》
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 2023年高一物理期末考試卷(人教版)
- 2023版押品考試題庫必考點含答案
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質(zhì)量驗收規(guī)范檢驗批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產(chǎn)檢查表
- 辦公家具項目實施方案、供貨方案
- 七年級英語下冊閱讀理解10篇
- 節(jié)后開工收心會
- 設(shè)計質(zhì)量、進度保證措施
評論
0/150
提交評論