2011-02-15 118 views
0

一個Android應用程序通常是由: - 的主要活動是切入點 - 其他activites - 廣播 - 服務生命週期和廣播

當我開始我的應用程序: - 主要活動是加載到內存中 - 我的主要活動開始使用startActivity() 其他活動 - 廣播在內存中加載 - 一個服務被加載到內存中

的問題是:當I p我的手機後退按鈕我的應用程序的所有組件都發生了什麼事情: - 我猜主要活動已被破壞 - 其他活動在我的應用程序 中啓動 - 廣播是否仍然存在?

問候

回答

1

BroadcastReceivers不是用您的應用程序創建的,它們是在廣播實際發生時創建的,這與您的應用程序生命週期完全分離。一般而言,BroadcastReceivers僅在其執行onReceive-方法期間存在。它恰好是他們與他們相應的應用程序共享一個進程,如果一個已經在運行。

對於服務,事情會變得更加複雜一些,但是如果您不在當前應用程序之外使用它們,並且沒有明確地將它們放入不同的進程中,那麼當應用程序中的所有活動消失時它們也會消失。不一定立即,但你必須期待它。

0

除了別人說的話,Android會(通常)會在第一次啓動活動/服務或調用廣播接收器時爲您的應用程序創建一個進程。 Android將根據其記錄的生命週期來管理活動和服務。

進程本身可能無限期地留在內存中(基本上直到android決定它可能需要它佔用的內存) - 但這不是你需要關心的東西。