在 Xamarin Forms 中覆盖 OnActivated 的正确方法是什么?我得到意想不到的结果

What is the correct way to override OnActivated in Xamarin Forms? Am getting unexpected results

Facebook SDK directs me 使用 OnActivated 事件来记录某些事件。 (或者有选择地不记录它们。)

它告诉我覆盖 iOS OnActivated 事件。 (另见 Xamarin docs.

当我输入 "override OnActivated" 时,会生成以下代码

    [Export("applicationDidBecomeActive:")]
    public void OnActivated(UIApplication application)
    {
        throw new System.NotImplementedException();
    }

这与所有其他覆盖形成对比,没有导出

    public override void WillEnterForeground(UIApplication uiApplication)
    {
    }

这是否意味着 Xamarin 有错误,或者这是一个不同的实现?

下面是为 Xamarin.iOS 覆盖 OnActivated 的正确方法。

如果您的 AppDelegate 已经有一个现有的 public override void OnActivated 方法,当您尝试覆盖 OnActivated 时,Export 属性将出现。

我已经在我的 Xamarin.iOS 应用程序中测试了以下代码,当应用程序被激活时,它会按预期触发。

代码

public class AppDelegate : FormsApplicationDelegate
{
    ...

    public override void OnActivated(UIApplication uiApplication)
    {
        base.OnActivated(uiApplication);

        //Do Stuff
    }

    ....
}