小编典典

Activity.finish() 方法到底在做什么?

all

我正在开发android应用程序一段时间,并关注了很多关于活动生命周期和应用程序生命周期的帖子。

我知道Activity.finish()在某处调用方法Activity.onDestroy(),并从堆栈中删除活动,我猜它以某种方式指向操作系统和垃圾收集器,他可以“做他的伎俩”并在发现它的好时机释放内存所以....

这让我对这个方法到底做了什么感到有点困惑finish()

有没有机会我会打电话finish()onDestroy()不会被打电话?


阅读 65

收藏
2022-08-29

共1个答案

小编典典

当调用 finish() 一个活动时,该方法 onDestroy() 被执行。此方法可以执行以下操作:

  1. 关闭活动正在管理的任何对话框。
  2. 关闭活动正在管理的所有游标。
  3. 关闭任何打开的搜索对话框

另外, onDestroy()
不是析构函数。它实际上并没有破坏对象。它只是一种基于某种状态调用的方法。因此,在超类运行并返回之后,您的实例仍然存在并且非常好*
onDestroy()。Android
保留进程以防用户想要重新启动应用程序,这使得启动阶段更快。该进程将不会做任何事情,如果需要回收内存,该进程将被杀死

2022-08-29