activity 循环解除分配

activity rotate deallocation

我创建了一个简单的 hello world activity 我 started.I 查看 android 分析器,当我旋转屏幕时,在堆中(android 分析器监视器)总共显示了 2 个 MainActivity。为什么第一个 activity 没有 dealloc?

可能没有问题。 Java 中的内存不会立即解除分配。相反,内存会在垃圾回收 运行 时释放。如果没有从 GC 根对象到该对象的引用,垃圾收集器将收集它。所以可能只是垃圾回收还没有 运行。

另一种可能是内存泄漏。在这种情况下,您有一些引用 Activity 的对象尚未准备好超出范围。常见原因是可观察的订阅、线程、静态变量和非静态内部 类 被传递给常驻的东西(比如框架本身)。