gpt4 book ai didi

Android:旋转屏幕时删除/销毁对象

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:29 24 4
gpt4 key购买 nike

我发现在一次或多次屏幕旋转后性能会下降,我认为这可能是因为每次屏幕旋转时应用程序的主 Activity 都会被销毁并重新创建,并且我的应用程序一定会泄漏内存发生了。

我读到过,与人们的预期相反,并非所有由应用程序的主 Activity(或在该 Activity 调用的类中)创建的对象在 Activity 被销毁时都被销毁。具体来说,我想我已经读过(虽然我现在找不到哪里)如果 View 使用一个大的位图成员对象,那么 Activity 的 onDestroy() 方法应该被覆盖并且位图应该被显式回收。

Activity销毁时是否还有其他对象需要销毁或移除?听众呢?是否有关于此主题的综合教程或指南?

最佳答案

Is there a comprehensive tutorial or guide on this subject?

不是真的。

Are there other objects that need to be destroyed or removed when the Activity is destroyed? What about Listeners?

位图是不寻常的,部分原因是如果我正确理解拜占庭 Android 内存模型的话,它们使用 16MB 堆之外的内存。

除了大位图之外,您真正需要担心的最重要的事情是阻止正常垃圾收集工作的事情。任何从静态上下文直接或间接保留到 Activity 上的东西都将阻止 Activity 被垃圾收集。示例包括:

  • 类上的静态数据成员(例如,您使用您的一项服务构建自己的监听器框架,因此您的服务会保留一个监听器,该监听器会保留您的 Activity )
  • 线程(例如,您手动创建一个后台线程并且不终止它)

关于Android:旋转屏幕时删除/销毁对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2132033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com