Xamarin Android内存泄漏, *** 作简单

Xamarin Android内存泄漏, *** 作简单,第1张

概述我正在追踪我的Xamarin Android项目中的内存使用和泄漏,并决定从一个简单的页面开始. 启动仪表板/启动活动时,我有21.790 MB的已分配内存和堆大小26.016 MB. 当我打开帮助活动时,我只需使用OnCreate方法创建一个活动,如下所示: protected override void OnCreate(Bundle bundle) { 我正在追踪我的Xamarin Android项目中的内存使用和泄漏,并决定从一个简单的页面开始.

启动仪表板/启动活动时,我有21.790 MB的已分配内存和堆大小26.016 MB.

当我打开帮助活动时,我只需使用OnCreate方法创建一个活动,如下所示:

protected overrIDe voID OnCreate(Bundle bundle)        {            base.OnCreate(bundle);            SetContentVIEw(Resource.Layout.HelpActivity);            Actionbar.SetdisplayHomeAsUpEnabled(true);            _quickstartGuIDelinearLayout = FindVIEwByID<linearLayout>(Resource.ID.quickstart_guIDe_layout);            _quickstartGuIDelinearLayout.Click += VIEwQuickstart;            _usermanuallinearLayout = FindVIEwByID<linearLayout>(Resource.ID.user_manual_layout);            _usermanuallinearLayout.Click += VIEwUserManual;        }

然后在OnDestroy中:

protected overrIDe voID OnDestroy()        {            if (_quickstartGuIDelinearLayout != null)            {                _quickstartGuIDelinearLayout.Click -= VIEwQuickstart;                _quickstartGuIDelinearLayout.dispose();                _quickstartGuIDelinearLayout = null;            }            if (_usermanuallinearLayout != null)            {                _usermanuallinearLayout.Click -= VIEwUserManual;                _usermanuallinearLayout.dispose();                _usermanuallinearLayout = null;            }            base.OnDestroy();        }

当显示帮助活动时,内存使用量将高达22.102 MB,当我单击后退或 *** 作栏向上按钮时,它将仅下降到22.078 MB.

如果帮助活动被破坏,为什么它不会回到21.790 MB?

解决方法 我似乎通过将dispose()添加到我的OnDestroy()来修复它,如下所示:

protected overrIDe voID OnDestroy()        {            base.OnDestroy();            dispose();        }

编辑:
没关系,似乎这纯粹是因为我将GC.Collect()与dispose()一起调用.删除dispose()没有任何负面影响所以我猜我的原始问题只是基于这样一个事实:小的无关紧要的内存增加量并没有导致Mono GC运行,这本质上是应该如何运行的.

编辑每个Xamarin支持:没有必要在OnDestroy()上的活动上调用dispose.通过FindVIEwByID找到的对象应该通过在每个上调用.dispose()以及通过 – = MyEventHandler删除事件处理程序来处理OnDestroy;

总结

以上是内存溢出为你收集整理的Xamarin Android内存泄漏, *** 作简单全部内容,希望文章能够帮你解决Xamarin Android内存泄漏, *** 作简单所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1127619.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存