我的 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/