情况是这样的:我有一个活动,它有一个工具栏、一个 Tablayout 和一个 View Pager(将包含 5 个片段)
在第一个片段中,我有一个布局,其中将包含一个默认片段,该片段将具有一个包含两列的 Recycler 视图。上面的每个元素都有一张从 Internet 下载的图像(使用 Glide 并保存在缓存中),当用户单击支架(列表中的一个元素)时,会将“布局容器”上的这个默认片段更改为另一个将有一个新的 Recycler View,其中包含使用 Glide 从 Internet 下载的图像。类似于 Instagram 搜索页面。
我认为 Glide 是问题所在,但我对所有代码进行了注释,当我在模拟器上运行该应用程序时,它会消耗更多或更少的 89 MB RAM。
额外的信息
(在 Activity 内的视图寻呼机内的片段内)
MySingleton.getInstance(getContext()).addToRequestQueue(req);
Run Code Online (Sandbox Code Playgroud)
然后它下载图片 URL 并使用 Glide 在视图上收费。
if(holder.publication.getPicture() != null ){
Glide.with(holder.ctx).load(holder.publication.getPicture()).diskCacheStrategy(DiskCacheStrategy.ALL).centerCrop().into(holder.picture_imgView);
}
Run Code Online (Sandbox Code Playgroud)
我没有使用静态变量
此外,我从 Recycler View 元素中删除了所有动画,但仍然很慢。
我使用 Android 监视器和“Jump Java Heap”选项来查看它是如何管理内存的,并且主编号在 Byte[] 上(我不明白使用这个工具)
非常感谢!
更新 在我的日志中,我总是得到这个:
W/ViewRootImpl: Dropping event …Run Code Online (Sandbox Code Playgroud) android android-fragments android-recyclerview android-glide