应用程序/活动和广播的生命周期

时间:2011-02-15 10:17:49

标签: android

Android应用程序通常由以下内容组成: - 作为切入点的主要活动 - 其他活动 - 广播 - 服务

当我开始申请时: - 主要活动加载到内存中 - 我的主要活动使用startActivity()启动其他活动 - 广播加载到内存中 - 服务加载到内存

问题是:当我按下手机的后退按钮时,我的应用程序的所有组件都会发生什么: - 我猜主要活动被破坏了 - 在我的应用程序中开始的其他活动呢? - 广播还活着吗?

此致

3 个答案:

答案 0 :(得分:1)

BroadcastReceivers不是使用您的应用程序创建的,它们是在广播实际发生时创建的,它与您的应用程序生命周期完全分开。通常,BroadcastReceivers仅在执行onReceive - 方法时存在。它恰好是他们与相应的应用程序共享进程(如果已经运行)。

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

答案 1 :(得分:0)

阅读application fundamentals,它涵盖了每个应用程序组件的生命周期。

答案 2 :(得分:0)

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

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