gpt4 book ai didi

java - Android 应用程序内存泄漏 - android.app.ActivityThread$ActivityClientRecord

转载 作者:行者123 更新时间:2023-11-30 10:41:14 25 4
gpt4 key购买 nike

我正在开发我的第一个 Android 应用程序,它有内存泄漏。我已经使用了像 MAT 这样的工具,但我仍然无法找出泄漏的来源。

一些上下文和情况:我的应用程序中有很多 Activity 。当我反复从 Activity A 转到 Activity B 再回到 Activity A 时,使用的内存会不断增加。我尝试过的所有 Activity 都会发生这种情况。

通过 MAT 泄漏嫌疑分析(见第一个图像链接),有大量的“android.app.ActivityThread$ActivityClientRecord”,我不知道它是什么。

我是编程新手,我已经研究这个问题好几天了,阅读了数十篇 Stack Overflow 帖子,但仍然不知道泄漏从何而来。

以下是 MAT 分析结果的一些屏幕截图:

MAT leak suspect report

Comparison of MAT Histogram of 2 different time points (after filtering out objects which are not coded by me)

几乎所有的 Activity 都共享一些 fragment

  • DayTimeFragment(所有 Activity 共享)

  • StatusBarFragment(所有 Activity 共享)

  • BackButtonFragment(一些 Activity 共享)

  • ButtonFragment(部分 Activity 共享)

最佳答案

我没有查看您的数据,所以我不能肯定地说,但您的错误消息与这些报告类似:

我也收到了来自 android.app.ActivityThread$ActivityClientRecord 的泄漏的 LeakCanary 日志消息,并通过禁用我所有 Activity 之间的转换来解决它,如 here 所述.

我不知道是否有其他解决方法,也不知道这个特定解决方法与哪些版本兼容,但我在调用 startActivity 后立即使用了 overridePendingTransition(0, 0); (静态实用程序方法)并再次针对每个 Activity 的 onPause(在基类中)。

关于java - Android 应用程序内存泄漏 - android.app.ActivityThread$ActivityClientRecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38566823/

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