黑馬程序員android廣播broad耗時問題_第1頁
黑馬程序員android廣播broad耗時問題_第2頁
黑馬程序員android廣播broad耗時問題_第3頁
黑馬程序員android廣播broad耗時問題_第4頁
黑馬程序員android廣播broad耗時問題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

定義類繼承BroadcastReceiveronReceive有序廣播中,如果要控制多個接收者之間的順序,可在<intent-filter>priority屬性,0,值越大,優(yōu)先級越高;BroadcastReceiver除了在文件中,也可以在代碼中,使用方法<!--配置廣播接收者,--廣播接收者的方4大組件中,只有廣播接收者是一個非常特殊的組件,其他3大組件都需要在文件中注廣播接收者,有2中方式:文件與代碼方式;文件廣播接收者,只要應用程序被部署到上,就立刻生效,不管進程是否//廣播接收者privateclassInnerReceiverextendsBroadcastReceiver{publicvoidonReceive(Contextcontext,Intentintent){Stringphone=getResu }} publicvoidonCreate()//==服務啟動時, 廣播接收者==innerReceiver=newInnerReceiver();IntentFilterfilter=new}//銷毀publicvoidonDestroy()//==服務停止時,移除廣播接收者==innerReceiver=null;}Intent確定廣播類型,可攜帶數(shù)據(jù),所有接收者都可以接收到數(shù)據(jù),數(shù)據(jù)不能IntentintentnewIntent("com.itheima.broadcast.TESTintentfilter //包含未啟動的過的應用(也intent.putExtra("data","這是來著廣播發(fā)送者發(fā)來的賀電"); //廣播發(fā)送者intent中的數(shù)sendBroadcast(intent,null); //發(fā)送無序廣播,異步獲取數(shù)publicclassAReceiverextendsBroadcastReceiverpublicvoidonReceive(Contextcontext,Intentintent){System.out.println("AReceiver:"+intent.getStringExtra("data"));}}<receiver" 的廣播-->publicvoidonReceive(Contextcontext,Intentintent){Log.i(TAG,"打 Stringphone=this.getResuif("2008".equals(phone))//==打開防盜功能界面IntentsafeIntent=newIntent(context,LostFindActivity.class); //使Activity //中斷廣播 //把設為null,就沒有}}sendOrderedBroadcast()Intent確定廣播類型,攜帶數(shù)據(jù),Intent可以指定一個自己的廣播接收者,IntentintentnewIntent("com.itheima.broadcast.TESTintentfilter //包含未啟動的過的應用(也intent.putExtra("data","這是來著廣播發(fā)送者發(fā)來的賀電"); //廣播發(fā)送者的intent中的數(shù)//==有序廣播時,傳遞的數(shù)據(jù)可修改==Bundlebundle=newBundle();bundle.putString("name","");bundle.putInt("age",22);/*定義權限,要求接收者,要有com.itheima.permission.broadcast.RECEIVE才能接收;*配置了最后接收者,Creceiver,無論怎么弄,我都可以收到廣播,而且我不要配置,限傳遞了數(shù)據(jù)1,“MainActivitybundle CReceiver(),null,1,"MainActivity",publicvoidonReceive(Contextcontext,Intentintent){System.out.println("AReceiver:"+intent.getStringExtra("data"));Bundlebundle //設置為trueStringmessage=String.format("%s:%s:%s,%s",getResultCode(),getResuata(),bundle.getString("name"),bundle.getInt("age")); //如果優(yōu)先級高于其他接收者,將打印//==修改有序發(fā)送者,發(fā)來的數(shù)據(jù)==bundle.putString("name","");bundle.putInt("age",222);this.setResult(2,"AReceiver",bundle);//==修改Intent中的數(shù)據(jù),無效==intent.putExtra("dataAReceiver修改了數(shù)據(jù)");//this.abortBroadcast(); //中斷,比它優(yōu)先級低的接收者,}<receiverandroid:name="com.itheima.a.AReceiver"修改撥出去的 限 在onReceive方法中使用getResuata()和setResuata()方法獲取和設置publicclassCallReceiverextendsBroadcastReceiver

publicvoidonReceive(ContextcontextIntentintent//獲取撥打號碼Stringphone //獲取號碼")){ //號碼前加 ata("17951"+ //修碼,此數(shù)據(jù)不是Intent中過}}}<!--配置權限,可處理打出 <!--配置廣播接收者,--Android系統(tǒng)在收到 onReceive方法內(nèi)部調用IntentgetExtras()get()pdus字段,得到一Object[]byte[];Android系統(tǒng)中收到是一個有序通知,我們?nèi)缧?,可以配置較priority,收到信息進行判斷是否abortBroadcast();publicvoidonReceive(Contextcontext,Intentintent){//==通過意圖獲取信息,返回數(shù)組類型Object[]pdus=(Object[])for(Objectpdu:pdus)取內(nèi)}

Stringnumber //發(fā)送地址Datedatenew //接收時間Stringcontent //消息內(nèi)容if //中斷廣播}<!--接收權限--<!--優(yōu)先級,值越多,優(yōu)先級越高,默認為01.5Activity的主線不能進行耗時的操作,因為會阻塞頁面刷新以及用戶操作如果在新線做,也不太合適,因為如果Activity被切換到(stop狀態(tài)),很有onReceive()方法是運行在主線的,如果進行耗時操作,會阻塞界面刷新和用

如果在新線做,也不行,因為BroadcastReceiver的生命周期非常短暫,在廣,@authorzhaoyu2013-7-20上午publicclassMainActivityextendsActivityprivateTextViewprivateHandlerhandler=newprivateintprotectedvoidonCreate(BundlesavedInstanceState){numTV=(TextView)}publicvoidstart(Viewv)for(inti=0;i<100;i++){try{//==這種方式,值已經(jīng)改變。但是主線程,沒有來得及刷新界面,代碼的處理,所以界面一直顯示0,一直到循環(huán)結束,才顯示最終結果==numTV.setText(i+"");}catch(InterruptedExceptione){}}//==使用新線程,將耗時的操作放入新線程,如

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論