[英]Unregister event handler to prevent multiple callback in c# Unity
每次我调用方法subscription事件处理程序。 因此它多次被调用,因为我不退订事件处理程序。 如何正确退订事件处理程序以防止onComplete的多次回调?
public void DoTheAction(Action<bool> onComplete = null) {
if (rewardBasedVideo.IsLoaded()) {
rewardBasedVideo.Show();
rewardBasedVideo.OnAdRewarded += (sender, args) => {
onComplete(true);
};
}
}
您可能要考虑重构代码,这样就不会出现此问题,但这就是您可以实现所要求的方式的方法。
public void DoTheAction(Action<bool> onComplete = null)
{
if (rewardBasedVideo.IsLoaded())
{
rewardBasedVideo.Show();
rewardBasedVideo.OnAdRewarded -= HandleOnAdRewarded;
rewardBasedVideo.OnAdRewarded += HandleOnAdRewarded;
}
}
private void HandleOnAdRewarded(object sender, EventArgs e)
{
onComplete(true);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.