黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽

黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽

ID:28649829

大小:630.01 KB

頁數(shù):5頁

時間:2018-12-12

黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽_第1頁
黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽_第2頁
黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽_第3頁
黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽_第4頁
黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽_第5頁
資源描述:

《黑馬程序員的安卓教程廣播接收者之開機(jī)啟動地監(jiān)聽》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、廣播接收者之開機(jī)啟動的監(jiān)聽在Android開發(fā)中,我們常常需要監(jiān)聽系統(tǒng)的開機(jī)啟動廣播。例如Android系統(tǒng)的桌面程序,當(dāng)系統(tǒng)啟動時,則運(yùn)行桌面程序,并列舉Android設(shè)備上的所有應(yīng)用到桌面上。下面我們將通過一個Demo來監(jiān)聽系統(tǒng)的啟動廣播事件。設(shè)計需求:開發(fā)一個勒索應(yīng)用,一旦用戶開機(jī),該勒索應(yīng)用就自動運(yùn)行,無論用戶點(diǎn)擊“BACK”按鍵還是“HOME”按鍵都不能退出該應(yīng)用。具體步驟如下:1.編寫廣播接收者新建工程“04_勒索軟件”,在該工程的包下新建一個類“BootReceiver”,此時工程結(jié)構(gòu)如圖1-1所示:圖1-1所示編寫“BootRecei

2、ver”使之繼承BroadcastReceiver并重寫onReceive方法。具體代碼如例1-1:例1-1publicclassBootReceiverextendsBroadcastReceiver{//任務(wù)棧。記錄維護(hù)activity的@OverridepublicvoidonReceive(Contextcontext,Intentintent){System.out.println("手機(jī)啟動完畢了。");}}例1-1編寫了一個廣播接收者即SDStatusReceiver,一旦接收到對應(yīng)的廣播就執(zhí)行onReceive方法。廣播接收者已經(jīng)編寫

3、完成,我們還需要注冊該廣播接收者。2.聲明該廣播接收者在項目清單文件中注冊該廣播接收者SDStatusReceiver,代碼如下例1-2:例1-21.指定接收的意圖在“04_勒索軟件”應(yīng)用中,我們只對開機(jī)的廣播感興趣,對于其他的系統(tǒng)廣播并不感興趣。為此,我們需要指定該廣播接收者所要接收的系統(tǒng)廣播。代碼如例1-3:例1-3

4、ion..........從例1-3可知:我們可以通過意圖過濾器來指定廣播接收器需要接收的系統(tǒng)廣播,常量“android.intent.action.BOOT_COMPLETED”就表示系統(tǒng)開啟事件。至

5、此,我們已經(jīng)完成了廣播接收器編寫,接下來就是處理“04_勒索軟件”的勒索界面,根據(jù)需求設(shè)計頁面效果如圖1-2所示:圖1-2所示從圖1-2可知:當(dāng)系統(tǒng)開啟之后,“04_勒索軟件”就會自動運(yùn)行并一直顯示圖1-2所示頁面。此時,“BACK”按鍵和“HOME“按鍵都會陪屏蔽掉,從而到達(dá)勒索的目的。在例1-1中我們雖然重寫了onReceive方法,但沒有編寫該方面的業(yè)務(wù)邏輯,調(diào)整例1-1代碼如例1-4所示:例1-4publicclassBootReceiverextendsBroadcastReceiver{//任務(wù)棧。記錄維護(hù)activity的@Overri

6、depublicvoidonReceive(Contextcontext,Intentintent){System.out.println("手機(jī)啟動完畢了。");Intenti=newIntent(context,MainActivity.class);//注意廣播接收者里面是沒有任務(wù)棧信息的,如果在廣播接收者里面開啟activity//需要顯示的指定讓activity自己管理自己的任務(wù)棧。//非常重要,不寫代碼就會報錯。i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(

7、i);//醫(yī)療軟件公司。醫(yī)療PAD}}從例1-4可知:一旦該廣播接收器調(diào)用了onReceive方法,系統(tǒng)就會跳轉(zhuǎn)到MainActivity頁面中也就是勒索頁面。在類BootReceiver中,若要實現(xiàn)Activity的跳轉(zhuǎn)我們需要添加上例紅色標(biāo)記的代碼語句,否則程序報錯。運(yùn)行程序,將“04_勒索軟件“部署到模擬器中;然后關(guān)閉該模擬器,再次啟動模擬器則效果如圖1-3所示:圖1-3所示從圖1-3可知:啟動模擬器時,“04_勒索軟件“中的廣播接收器就會接收到系統(tǒng)開機(jī)的廣播,此時onReceive方法就會調(diào)用,于是系統(tǒng)跳到勒索頁面。點(diǎn)擊”BACK“頁面也無響

8、應(yīng),這是因為我們在MainActivity中重寫了onBackPressed方法,代碼如例1-5所示:例1-

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。