gpt4 book ai didi

java - 如何在android recyclerview上管理太多项目的内存

转载 作者:行者123 更新时间:2023-12-02 01:14:28 25 4
gpt4 key购买 nike

我正在开发一个 Android 社​​交媒体类型应用程序,其中有多个选项卡 Activity 。选项卡是使用 viewpager 的 fragment 。我有一个带有回收器 View 的主屏幕。帖子上有图片。我在发布回收器 View 时遇到内存问题。如果有帮助的话,我正在使用 firebase 作为数据库。为了加载 ImageView ,我正在使用 glide,并且正在执行磁盘缓存并跳过内存缓存。

我遇到的问题是

  1. 当加载太多帖子时,recyclerview 会变得缓慢且滞后(我知道还有其他帖子与此相关,但找不到任何有用的东西)。

  2. 当我点击帖子中的用户名时,一个新的个人资料 Activity 就会启动,其中也包含该用户的所有帖子,我试图找到一种方法来清除主页选项卡 recyclerview 内存,但不知道如何做。

为了解决第一个问题,我设置了一个 onscrolllistner,每次您接近帖子列表末尾时都会加载 10 个新帖子。回收器 View 适配器当前最初加载 20 个项目,然后依此类推。但我不确定如何以有效的方式清除旧帖子,因为我希望用户能够向上滚动。

为了解决第二个问题,在主屏幕 fragment 中,当我启动新 Activity 时,会调用 onPause() 函数。在 onpause() 函数中,我尝试将列表设置为空,将 recyclerview 适配器设置为 null,将 recyclerview 设置为 null,但没有任何效果。在 android profiler 工具中,我看到我使用了 200 mb 内存,当我启动新 Activity 时,它又增加了 100 mb 左右。我尝试过手动垃圾收集,但也不起作用。具体来说, native 内存在分析器中会跳跃。我已经测试并确保这只是因为回收 View 中的图像。

我不知道为什么当我将recyclerview、适配器和帖子列表设置为空时,为什么帖子中的图像仍然保留在内存中。

最佳答案

  1. Glide 缓存图像
  2. 加载多个后检查分页库
  3. 当移动到详细信息 fragment 并清除主页 fragment 的 reacyclerview 时,我不建议这样做,因为下次用户切换到主页选项卡时,用户将不会保存他之前留下的先前状态。

关于java - 如何在android recyclerview上管理太多项目的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57666108/

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