java - 垃圾收集载入画面

标签 java android garbage-collection

我的 android 应用程序中有两个 Activity 。当我从第一个 Activity 切换到第二个 Activity 时,gc 启动并使第二个 Activity 滞后直到它完成。我决定制作一个闪屏(加载屏幕),在 gc 完成之前不会关闭,但我不知道如何以编程方式获取 gc 状态。有什么分类吗?请让我知道我怎样才能得到这个场景!

最佳答案

首先,在 Android 中,垃圾收集由 ART - Android 运行时或 DVM - Dalvik 虚拟机(在旧设备上)组织。由于 ART/Dalvik 本质上是 JVM 的专用版本,它们具有与 GC 类似的方法,因此它完全由系统管理,而不是由用户管理。

Hence, you don't get to control the garbage collection in Android.

确实,您可以调用 System.gc(),但既不保证也不推荐这样做。您应该完全忘记垃圾收集过程并将其留给系统。

虽然你无法控制它,但你仍然有责任管理内存并尽可能防止过度使用内存。您应该考虑的一些提示:

  • 处理完大对象后立即释放它们(删除指向它们的硬引用);
  • 根据您的需要使用多线程,线程将以并行方式更快地工作(尤其是在多核处理器上);
  • 优化您的算法,如果操作不当,即使是基本的列表迭代也可能会减慢进程并泄漏内存

关于java - 垃圾收集载入画面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57636343/

相关文章:

java - 如果 sql 值更改,则更新 Android 应用程序

android - 如何制作具有渐变背景的启动器图标?

android - 通过 Intent 在类之间发送一个变量

javascript - 自调用函数+闭包改善垃圾收集导致的挂起

java - 检查垃圾收集器是否可以获取对象

java - 使用 Jolt 重新设置 JSON 对象的父级

java - Jackson 自动映射名为 @foo 的属性?

java - XmlPullparser 从 url 解析 xml 不起作用

android - 每次我调用 onDestroy() 并从最近使用的应用程序列表中打开 Activity 时创建的 Intent

docker - Docker注册表的GC集合