当前位置: 首页 > 面试题库 >

Android:finish()总是会调用onDestroy()吗?

薛承基
2023-03-14
问题内容

一个简单的问题:您确定finish()可以致电onDestroy()吗?我没有找到任何确认。


问题答案:

一个简单的问题:您可以确定finish()将调用onDestroy()吗?

首先,此答案假定您正在引用Android的Activity类及其finish()方法和onDestroy()生命周期方法。

其次,这取决于您对“确定”的定义:

  • 您的流程可能在finish()和之间终止onDestroy(),原因与触发调用的原因无关finish()

  • 设备制造商或ROM修改器可能会引入一些螺钉更改,从而破坏finish()onDestroy()

  • 电池可能在finish()和之间耗尽onDestroy()

  • 等等。

第三,finish()打电话
onDestroy()。您可以通过阅读源代码来说明这一点。finish()通常
会触发一个电话onDestroy()

一般来说,finish()最终会导致onDestroy()被调用。



 类似资料:
  • 我在活动的中放置了一些缓存清理代码,但大多数情况下,除非通过显式地完成活动,否则这些代码不会执行。 编辑:只读仅在或系统资源不足时调用。那么我需要把我的缓存清理代码放在哪里呢?如果我把它放在中,用户返回到应用程序,缓存就会被清除。我实际上是在缓存中存储重要的临时文件,这些文件不应该在中删除。

  • 本文向大家介绍Android编程之Activity中onDestroy()调用分析,包括了Android编程之Activity中onDestroy()调用分析的使用技巧和注意事项,需要的朋友参考一下 本文分析了Android编程之Activity中onDestroy()调用方法。分享给大家供大家参考,具体如下: 刚刚一个BUG让我发现,如果 activity 实现了一个回调接口,然后使用 this

  • 我在学习保存的InstanceState捆绑包时感到困惑。我发现,在调用onDestroy()方法后,活动实例没有被销毁,或者它可以在没有SavedInstanceState Bundle帮助的情况下保存数据。 这是我的测试代码: 这里是日志信息: 除非我在手机上完全杀死进程,否则testNum永远不会返回到1,在我看来,活动实例并没有真正被销毁,所以我们不需要重写onSaveInstanceSt

  • 我有一个ArrayList,它应该在包含0个以上对象时启动报警服务,在包含0个对象时停止报警服务。 这是报警服务类。 这是on Receive方法广播接收器类 问题是,即使调用了报警服务的onDestroy方法,通知也不会停止。 我错过什么了吗? 谢谢

  • 问题内容: 如果仅在输出流中调用,则可以保证输出,还是需要始终调用? 问题答案: Close()始终刷新,因此无需调用。 编辑:这个答案是基于常识和我遇到的所有输出流。谁将为缓冲流实现close()而不先刷新缓冲区?在close()之前立即调用flush没有什么害处。但是,如果过度调用flush()会导致后果。它可能会在缓冲机制下失败。

  • 为什么运行应用程序时返回false? 我使用它来控制日志,如下所示: