【发布时间】:2011-09-01 07:40:47
【问题描述】:
根据 android Activity 生命周期,唯一保证被调用的回调(如果 Activity 离开运行状态,这通常是预期的)是 onPause()。
因此,我必须假设在某些情况下实现 onStop() 和 onDestroy() 是有意义的,尽管它们并没有真正保证被调用。
我知道,当 Activity 可以通过 Stopped 状态返回到 Running 状态时,应该实施 onStop()(为什么要这样做而不是直接返回是另一个问题)。
但我不清楚是否需要 onDestroy(),我可以将所有清理/状态保存放入 onPause()。
您能否描述一个实际应用情况(即不类似于驾驶汽车等),在这种情况下实现onDestroy() 是有意义的?
【问题讨论】:
-
因为正常情况下会调用onDestroy()。只是它不保证被调用。例如,如果您的进程被 oom 杀手杀死。
-
@Falmarri 但是一个编写良好的应用程序应该针对最坏的情况而设计。您是在暗示在正常情况下会提高性能吗?
-
你为什么使用那个图表(2008!?)而不是official one?这是自 1.5 以来发生了很大变化的一件事。
-
我没有暗示什么。只需注意在 NORMAL 生命周期下它将被调用,您可以将其用作预期逻辑流的一部分。但正如你所说,你也应该优雅地处理最坏的情况。这并不意味着您应该只针对最坏的情况编写代码。
标签: android android-activity activity-lifecycle