[英]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.