Xamarin Android活动和处置一次性用品

问题描述 投票:0回答:1

我发现虽然有很多关于Xamarin Android的教程,但似乎没有关于如何处理资源的大量内容。更具体地说,当它们被丢弃时。

例如,在活动的OnCreate处理程序中,我正在进行多个Rx订阅,每个订阅返回一个IDisposable。我试图在各种其他处理程序(例如OnDestroy)中处理它们,但这些处理程序永远不会被调用。但订阅似乎堆积如山,因为每次导航活动时OnCreate都会运行。

除了这些订阅之外,还有我分配给类级变量(字段)的所有UI控件(TextViews,Buttons等)。那些也实施IDisposable

据我所知,我到处都有内存泄漏。

在任何地方都有指导吗?

xamarin xamarin.android
1个回答
0
投票

@SushiHangover是正确的(感谢寿司)。 OnPauseOnResume是我追求的事件。我还有一点挑战,当我点击我的自定义“返回开始”按钮时,我需要回到开始屏幕(沿途跳过中间屏幕)。

这样做的方法是在启动主屏幕活动时使用ClearTop ActivityFlag(Android.Content.ActivityFlags.ClearTop)。原始的Android代码版本可以在这里看到https://stackoverflow.com/a/5794572/540156

当你这样做时,你可以清理活动,当它们被弹出时会从背堆中弹出(在OnDestroy处理程序中,从重新收集)。

© www.soinside.com 2019 - 2024. All rights reserved.