android核心基礎(chǔ)第七天只要路是對就不怕_第1頁
android核心基礎(chǔ)第七天只要路是對就不怕_第2頁
android核心基礎(chǔ)第七天只要路是對就不怕_第3頁
android核心基礎(chǔ)第七天只要路是對就不怕_第4頁
android核心基礎(chǔ)第七天只要路是對就不怕_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

在Android中,BroadcastBroadcastReceiverBroadcast廣播接收者(BroadcastReceiver)用于接收廣播Intent的,廣播Intent的發(fā)送是通sendBroadcast/sendOrderedBroadcastIntent可以被訂閱了此Intent的多個廣播接收者所接收。在src 覆寫onReceive方法,代碼如下:。態(tài) 作(action),在AndroidManifest.xml文件中添加如下配置:這里的這個動作,是指sd卡未掛載。動態(tài) :在Java代碼中種 AndroidSDCardAndroid2.3的模擬器。在settings->Storagesettings中可以找到UnmountSDCard。點擊此選項可以移除SDCard。廣播接收者也是運(yùn)行在主線,所以在廣播接收者的onReceive方法內(nèi)不能有耗時以耗時操作最好放到service服務(wù)中。ApplicationNoResponse <<action在src目錄下新創(chuàng)建一個類IPCallerReceiver繼承BroadcastReceiverOnReceiveandroid:priority100> <action <action 模擬器重啟命令:adb :3.2以上版本必須 程序,接收不到開啟啟動完成的廣播。在 publicpublicvoidonReceive(Contextcontext,Intent{,,}} <action<action<action<actionschemepublicpublicclassInstallReceiverextends{publicvoidonReceive(Contextcontext,Intentintent)Stringaction=intent.getAction();ifToast.makeText(contextpackageName"已經(jīng)被刪除!"1).show();System.out.println(packageName+"已經(jīng)被刪除!");}elseifToast.makeText(contextpackageName"已經(jīng)被安裝!"1).show();System.out.println(packageName+"已經(jīng)被安裝!");}}}<<receiver<action<action<data分析:Android系統(tǒng)在收到的時候會發(fā)送一條有序廣播,我們?nèi)绻x一個接收者接<<action :android4.2后 了此actionsrc目錄下新建SMSReceiver類繼承BroadcastReceiverpublicpublicclassSMSReceiverextends{publicvoidonReceive(Contextcontext,Intentintent)//獲 數(shù)據(jù) Object[]objs=(Object[])for(Objectpdu://通過AndroidAPI中的SmsMessage類 對象SmsMessagemessage= Stringaddress= Stringbody= }}}}<<receiver 認(rèn)為0)之前接收到,優(yōu)先級可以配置較高的priority(1000),收到信息進(jìn)行判斷是否打開DDMS視圖,選擇EmulatorControl選項卡,在 eingnumber:中填寫一個號碼,模擬發(fā)送消息的號碼。然后選擇SMS單選按鈕,在右側(cè)的輸入框輸入的內(nèi)容。然后點擊Send按鈕,發(fā)送信息。發(fā)送自定義廣播 BroadcastReceiverBroadcastReceivertryingtoreturnresultduringanon-ordered publicpublicvoidsendBroadcast(ViewIntentintent=new//設(shè)置Action,}Receiver高,優(yōu)先級的取值范圍是:1000(最高)~-1000(最低)使用abortBroadcast方法前面的接收者可以將數(shù)據(jù)通過Bundlebundle=新創(chuàng)建一 工程《廣播發(fā)送和接收》,包一個有序廣播,MainActivity類代碼如下:publicclassMainActivityextendsActivityprotectedvoidonCreate(Bundle{super.onCreate(savedInstanceState);}publicvoidsendOrder(Viewview)//Intentintent=newIntent();intentTheIntenttobroadcast;allreceiversmatchingthiswillreceivethebroadcast.receiverPermissionStringnamingpermissionsthatareceivermustholdinordertoreceivebroadcast.Ifnull,nopermissionisrequired.resultReceiverownBroadcastReceivertotreatasthefinalreceiverofbroadcast.schedulerAcustomHandlerwithwhichtoscheduleresultReceivercallback;ifnullitwillbescheduledinContext'smainthread.initialCodeAninitialvalueforthecode.OftenActivity.RESULT_OK.initialDataAninitialvalueforresultdata.Oftennull.initialExtrasAninitialvalueforresultextras.Often第一個參數(shù)Intent第二個參數(shù)String類型receiverPermission,需要的權(quán)器nullRESULT_OK"1萬元錢"}MyReceiver類代碼 publicpublicclassMyReceiver2extendsBroadcastReceiverpublicvoidonReceive(Contextcontext,Intent{Stringaction=intent.getAction();String ata= , ata, }}<<receiver<action<actionMyReceiverabortBroadcast()publicclassMyReceiverextendsBroadcastReceiverpublicvoidonReceive(Contextcontext,Intent{Stringaction=intent.getAction();String ata= , ata, }}sendOrderedBroadcast中第三個參數(shù),指定一個最終我們發(fā)現(xiàn),雖然在MyReceiver中我們調(diào)用了abortBroadcast();方法,但是廣播依然被為最終,因此該廣播被終止的時候MyReceiver2依然可以接收到廣播。MyReceiver2這個接收者不需要4、在第3種情形的基礎(chǔ)上,我們修改MyReceiver類, 該類中的onReceiveabortBroadcast();我們發(fā)現(xiàn)MyReceiver第一個接收到廣播,MyReceiver2第二個接收到廣播,然后MyReceiver2又接收到一次廣播。對的,結(jié)果確實是這樣,因為我們在廣播是Android系統(tǒng)的一個,他通過廣播的機(jī)制去分發(fā)這個,系統(tǒng)已經(jīng)實現(xiàn)了很多廣播接收者。像:低電量,重啟,接收,撥打,sd卡掛載,2 //陰魂不散的廣播(粘性的廣播)粘性廣播,會一直等待intent指定的處理完畢,才會。10s但是有一些廣播是比較耗時的。比如WIFI狀態(tài)改變。Wifi設(shè)置:發(fā)送wifi狀態(tài)改變的廣播,系統(tǒng)就是通過sendStickyBroadcast來實現(xiàn)的,因為獲取wifi狀態(tài)改變是一個很耗時的操作(獲取的,并且會獲送廣播。練下常見廣播即可。privatefinalStringMY_ACTION //publicvoid{Intentintent=new/*Intentaction屬性*//*為Intent對象添加附加信息*/intent.putExtra("msg","發(fā)送廣播測試成功 /*發(fā)布廣播

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論