2017-04-07 81 views
0

BroadcastReceiver在manifest文件中註冊。當應用程序沒有運行並收到廣播時會發生什麼?Broadcast Receiver生命週期

Android是否創建一個新的進程來處理該廣播?

是否僅創建了擴展BroadcastReceiver的類?

整個過程如何工作?

+1

「Android是否創建了一個處理該廣播的新流程?」 - 是的。 「是否只創建了擴展BroadcastReceiver的類?」 - 應用程序單例,以及您擁有的任何「ContentProvider」實現也應該創建。 – CommonsWare

+0

所以,我認爲在接收器類中使用靜態變量並不是一個好主意。 – rayan

+0

當我們在廣播接收機上使用警報時會發生什麼?當接收器收到警報並且應用程序沒有運行時,是否發生完全相同的過程? (假設應用程序不是由用戶自己通過強制停止而被OS終止)。 – rayan

回答

0

Android是否創建一個新的進程來處理該廣播?

是的,如果應用程序沒有運行,並且您註冊的事件發生,Android OS會通過創建一個新進程來處理這種情況。如果你在代碼中註冊它,它會與你註冊它的活動/服務的生命有關。

是否只創建了擴展BroadcastReceiver的類?

應用程序單例以及您擁有的任何ContentProvider實現也應該創建。

謝謝CommonsWare的幫助。