【发布时间】:2015-12-26 19:12:07
【问题描述】:
我花了将近一整天的时间试图找出 Android 内存泄漏的原因。有一个活动我打开/关闭很多次(使用计时器)。过了一会儿,我收到了 OutOfMemory 错误:
每次活动打开时,我都看到 Xamarin Profiler 中的内存不断增加:
我确保没有可能卡在该活动中的属性或事件处理程序。我什至删除了每个图像、按钮等,试图检测导致内存泄漏的原因。还是一样……
然后我在主要活动的OnResume方法中做了GC.Collect()(打开有问题的活动的那个)。现在我可以看到内存按照它应该的方式上下波动。您可以在屏幕截图中看到结果:
根据Xamarin docs:
当次要堆内存不足时,GC 将运行以进行新分配
但这实际上并没有发生
【问题讨论】:
标签: android memory-leaks xamarin garbage-collection xamarin.android