2011-02-15 143 views
0

一个Android应用程序通常是由: - 的主要活动是切入点 - 其他activites - 广播 - 服务生命周期和广播

当我开始我的应用程序: - 主要活动是加载到内存中 - 我的主要活动开始使用startActivity() 其他活动 - 广播在内存中加载 - 一个服务被加载到内存中

的问题是:当I p我的手机后退按钮我的应用程序的所有组件都发生了什么事情: - 我猜主要活动已被破坏 - 其他活动在我的应用程序 中启动 - 广播是否仍然存在?

问候

回答

1

BroadcastReceivers不是用您的应用程序创建的,它们是在广播实际发生时创建的,这与您的应用程序生命周期完全分离。一般而言,BroadcastReceivers仅在其执行onReceive-方法期间存在。它恰好是他们与他们相应的应用程序共享一个进程,如果一个已经在运行。

对于服务,事情会变得更加复杂一些,但是如果您不在当前应用程序之外使用它们,并且没有明确地将它们放入不同的进程中,那么当应用程序中的所有活动消失时它们也会消失。不一定立即,但你必须期待它。

0

除了别人说的话,Android会(通常)会在第一次启动活动/服务或调用广播接收器时为您的应用程序创建一个进程。 Android将根据其记录的生命周期来管理活动和服务。

进程本身可能无限期地留在内存中(基本上直到android决定它可能需要它占用的内存) - 但这不是你需要关心的东西。