這篇文章主要講解了“Android開發(fā)怎么實(shí)現(xiàn)重啟后喚醒功能”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Android開發(fā)怎么實(shí)現(xiàn)重啟后喚醒功能”吧!
創(chuàng)新互聯(lián)專業(yè)成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷、軟文推廣等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計(jì)制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。
設(shè)備重啟后,那些持續(xù)運(yùn)行的應(yīng)用通常也需要重啟。通過監(jiān)聽?zhēng)в蠦OOT_COMPLETED操作的broadcast intent,可獲知設(shè)備是否已完成啟動(dòng)。只要打開設(shè)備,系統(tǒng)就會(huì)發(fā)送一個(gè)BOOT_COMPLETEDbroadcast intent。要想監(jiān)聽它,可以創(chuàng)建并登記一個(gè)standalone broadcast receiver。
standalone receiver是一個(gè)在manifest配置文件中聲明的broadcast receiver。即便應(yīng)用進(jìn)程已消亡,standalone receiver也可以被激活。(稍后還會(huì)學(xué)習(xí)到可以同fragment或activity的生命周期綁定的dynamic receiver。)
與服務(wù)和activity一樣,broadcast receiver必須在系統(tǒng)中登記后才能發(fā)揮作用。如果不登記,系統(tǒng)就不知道該向哪里發(fā)送intent。自然,broadcast receiver的onReceive(...)方法也就得不到預(yù)定的調(diào)用了。
要登記broadcast receiver,首先要?jiǎng)?chuàng)建它。創(chuàng)建一個(gè)StartupReceiver新類,繼承android.content.BroadcastReceiver類,代碼如下所示。
第一個(gè)broadcast receiver(StartupReceiver.java)
public class StartupReceiver extends BroadcastReceiver{
private static final String TAG = "StartupReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "Received broadcast intent: " + intent.getAction());
}
}
與服務(wù)和activity一樣,broadcast receiver是接收intent的組件。當(dāng)有intent發(fā)送給StartupReceiver時(shí),它的onReceive(...)方法會(huì)被調(diào)用。打開 AndroidManifest.xml配置文件,參照如下代碼登記上StartupReceiver。
在manifest文件中添加receiver(AndroidManifest.xml)
登記響應(yīng)隱式intent的standalone receiver和登記服務(wù)或activity差不多。我們使用receiver標(biāo)簽并在其中包含相應(yīng)的intent-filter。StartupReceiver會(huì)監(jiān)聽BOOT_COMPLETED操作,而該操作也需要配置使用權(quán)限。因此,還需要添加一個(gè)相應(yīng)的uses-permission標(biāo)簽。
在配置文件中完成聲明后,即使應(yīng)用并未運(yùn)行,只要有匹配的broadcast intent發(fā)來,broadcast receiver就會(huì)醒來接收。一收到intent,broadcast receiver的onReceive(Context, Intent)方法即開始運(yùn)行,隨后會(huì)被銷毀(如下圖所示)。
設(shè)備重啟后,StartupReceiver的onReceive(...)方法會(huì)被調(diào)用嗎?現(xiàn)在就來驗(yàn)證。首先,運(yùn)行更新版PhotoGallery應(yīng)用。
然后,關(guān)閉設(shè)備。如果是物理設(shè)備,直接按電源鍵關(guān)機(jī)。如果是模擬器,最簡(jiǎn)單的方法是直接退出模擬器應(yīng)用。
打開設(shè)備。如果是物理設(shè)備,直接按電源鍵開機(jī)。如果是模擬器,要么重新運(yùn)行應(yīng)用,要么使用AVD Manager啟動(dòng)應(yīng)用,但要保證使用的是剛關(guān)掉的那個(gè)模擬器。
現(xiàn)在,選擇Tools → Android → Android Device Monitor菜單項(xiàng)打開Android Device Monitor。(KitKat之前,Android Device Monitor常被稱為Dalvik Debug Monitor Server或DDMS。Dalvik是Android上的運(yùn)行時(shí)系統(tǒng)。自KitKat開始,Google又引入了ART(Android Runtime)。到了Lollipop,就只剩下ART可用了。雖然現(xiàn)在已改名為Android Device Monitor,但舊的名字仍時(shí)有耳聞。)
點(diǎn)擊Android Device Monitor的Devices選項(xiàng)頁(yè)中的設(shè)備。(如果看不到設(shè)備列表,請(qǐng)嘗試插拔USB設(shè)備或重啟模擬器。)
在Android Device Monitor窗口中,以Received broadcast intent關(guān)鍵字搜索LogCat輸出(如下圖所示)。
可以在LogCat中看到表明receiver運(yùn)行的日志。但如果在設(shè)備標(biāo)簽頁(yè)查看設(shè)備,則可能看不到任何PhotoGallery進(jìn)程。這是因?yàn)檫M(jìn)程在運(yùn)行broadcast receiver之后,就隨即消亡了。
感謝各位的閱讀,以上就是“Android開發(fā)怎么實(shí)現(xiàn)重啟后喚醒功能”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Android開發(fā)怎么實(shí)現(xiàn)重啟后喚醒功能這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!