【发布时间】:2016-04-27 14:41:42
【问题描述】:
我正在学习 Xamarin Android,我看到很多官方示例使用 lambdas 来订阅 Click 事件。像:mButton.Click += (sender, args) => { ... } 这样的东西很常见。我认为这种使用 lambda 的模式无法取消订阅事件。(如果我错了,请纠正我:))
今天我阅读了这份文件:Cross-Platform Performance - Unsubscribe from Events。它说我们应该取消订阅事件以防止内存泄漏。
那我就糊涂了。我应该取消订阅所有 Click 事件吗?我觉得由于mButton是我的Activity的成员,所以在销毁我的Activity时,mButton也应该被销毁,因此不需要取消订阅它的Click事件。是真的吗?如果是这样,那么在什么情况下我应该取消订阅活动?
谢谢!
【问题讨论】:
-
你可以尝试使用 Rx 的魅力来处理事件吗,当你切换到这个模型时,你可能会发现很多内存泄漏都消失了。
标签: c# android memory-leaks xamarin xamarin.android