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

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

我开发了一段时间的Android应用程序,并关注了许多关于活动生命周期和应用程序生命周期的文章。

我知道呀Activity.finish()方法调用Activity.onDestroy(),以及从堆栈中移除活动,我想它以某种方式指向操作系统和垃圾收集器,当它发现这样做的好时机时,他可以“做好他的本事”并释放内存.

我来到这个岗位-放弃申请是否会被拒之门外?读马克·墨菲的答案。

这让我有点困惑到底是什么finish()方法实际上是这样的。

我会打电话给你吗finish()onDestroy()不会被打电话?


泛舟湖上清波郎朗
浏览 1290回答 3
3回答

元芳怎么了

打电话时finish()在一个活动中,方法onDestroy()被处决了。此方法可以执行以下操作:取消任何活动正在管理的对话框。关闭活动正在管理的所有游标。关闭任何打开的搜索对话框还有,onDestroy()不是破坏者。它并不能真正摧毁物体。它只是一种基于某种状态的方法。所以你的实例还活着,非常好*在超类之后onDestroy()运行和返回。Android保持进程周围,以防用户想要重新启动应用程序,这使启动阶段更快。进程不会做任何事情,如果需要回收内存,该进程将被终止。

红颜莎娜

我对Finish()方法执行了一个简单的测试。列出活动生命周期中的重要回调方法在onCreate()中调用Finish():onCreate()->onDesty()在onStart()中调用Finish():onCreate()->onStart()->onStop()->onDesty()在onResume()中调用Finish():onCreate()->onStart()->onResume()->onPace()->onStop()->onDesty()我想说的是,在执行Finish()时,方法的对应方以及中间的任何方法都会被调用。例: onCreate() counter part is onDestroy()  onStart() counter part is onStop()  onPause() counter part is onResume()

月关宝盒

onDestroy()意味着最终的清理-释放资源,你可以自己,关闭打开的连接,读者,作家等。如果你不覆盖它,系统做它必须做的。另一方面,finish()只是让系统知道程序员想要当前的Activity要结束了。因此,它会召唤onDestroy()在那之后。值得注意的事情:没有必要只打电话给finish()触发呼叫onDestroy()..没有。正如我们所知道的,如果android系统认为当前需要资源,它就可以自由地终止活动。Activity需要被释放。
打开App,查看更多内容
随时随地看视频慕课网APP