簡體   English   中英

Xamarin.Forms:有沒有人知道Xamarin.Forms中的WillEnterForeground和DidEnterBackground相當於什么?

[英]Xamarin.Forms : Does anyone know what's the equivalent of WillEnterForeground and DidEnterBackground in Xamarin.Forms?

我正在將我在Xamarin.iOS中編寫的應用程序重寫為Xamarin.Forms,我曾經在DidEnterBackground和WillEnterForeground上執行了一些代碼。 現在我找不到Xamarin.Forms中的等效方法。 我在我的App類中嘗試過mainPage.Appearing和mainPage.Disappearing,但它們似乎與我想要實現的不同。 任何人?

我不相信Xamarin.Forms的功能。 您可以安裝Xamarin.Forms.Labs(可在NuGet上使用)並從XFormsApplicationDelegate繼承您的應用程序委托。 您可以在GitHub源上查看示例應用程序委托

public partial class AppDelegate : XFormsApplicationDelegate
{

然后,您需要使用DI容器注冊IXFormsApp接口:

    private void SetIoc()
    {
        var resolverContainer = new SimpleContainer();

        var app = new XFormsAppiOS();
        app.Init(this);

        resolverContainer.Register<IXFormsApp>(app);

        Resolver.SetResolver(resolverContainer.GetResolver());
    }

一旦應用程序在DI容器上注冊,您就可以通過解析器在共享/ PCL代碼上使用它。 您將訂閱Resumed和Suspended事件。 這里有樣品。

        var app = Resolver.Resolve<IXFormsApp>();
        if (app == null)
        {
            return;
        }

        app.Closing += (o, e) => Debug.WriteLine("Application Closing");
        app.Error += (o, e) => Debug.WriteLine("Application Error");
        app.Initialize += (o, e) => Debug.WriteLine("Application Initialized");
        app.Resumed += (o, e) => Debug.WriteLine("Application Resumed");
        app.Rotation += (o, e) => Debug.WriteLine("Application Rotated");
        app.Startup += (o, e) => Debug.WriteLine("Application Startup");
        app.Suspended += (o, e) => Debug.WriteLine("Application Suspended");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM