我在开发android应用有一段时间了,关注了很多关于activity生命周期和应用生命周期的帖子。
我知道 Activity.finish()
方法在通往 Activity.onDestroy()
的某个地方调用,并且还从堆栈中删除了该 Activity ,我猜想它不知何故指向操作系统和垃圾收集器,他可以“做他的伎俩”并在发现合适的时候释放内存....
我来到这个帖子 - Is quitting an application frowned upon?并阅读 Mark Murphy 的回答。
这让我对 finish()
方法究竟做了什么感到有些困惑。
有没有可能我会调用 finish()
而不会调用 onDestroy()
?
最佳答案
在 Activity 上调用 finish()
时,会执行 onDestroy()
方法。此方法可以执行以下操作:
- 关闭 Activity 正在管理的所有对话框。
- 关闭 Activity 正在管理的所有游标。
- 关闭所有打开的搜索对话框
另外,onDestroy()
不是析构函数。它实际上并没有破坏对象。它只是一种基于某种状态调用的方法。因此,在父类(super class)的 onDestroy()
运行并返回后,您的实例仍然处于 Activity 状态并且非常好*。Android 会保留进程以防用户想要重新启动应用程序,这使得启动阶段更快。该进程将不会做任何事情,如果需要回收内存,该进程将被杀死
关于android - Activity.finish() 方法到底在做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10847526/