代码之家  ›  专栏  ›  技术社区  ›  Phill

IOS上的OnAppearing方法

  •  3
  • Phill  · 技术社区  · 7 年前

    当我的应用程序在后台转到前台时,OnAppearing()方法在IOS中不起作用,或者当手机被锁定然后解锁,应用程序在前台时,OnAppearing()方法不被调用,在Android上一切正常。 我在下面找到了这个指南,但是仍然不起作用,我有最新版本的xamarin表单。

    指南: https://kent-boogaart.com/blog/hacking-xamarin.forms-page.appearing-for-ios

    有人能帮我吗?

    1 回复  |  直到 7 年前
        1
  •  11
  •   SushiHangover    7 年前

    正如您所看到的,iOS中的“生命周期”是不同的。一种有用的方法是使用应用程序生命周期并将其与 Page

    public partial class App : Application
    {
        public EventHandler OnResumeHandler;
        public EventHandler OnSleepHandler;
    
        public App()
        {
            InitializeComponent();
            MainPage = new MyPage();
        }
    
        protected override void OnSleep()
        {
            OnSleepHandler?.Invoke(null, new EventArgs());
        }
    
        protected override void OnResume()
        {
            OnResumeHandler?.Invoke(null, new EventArgs());
        }
    }
    

    现在在你的 ContentPage

    void Handle_OnResumeHandler(object sender, EventArgs e)
    {
        Console.WriteLine("OnPauseResumeWithPage");
    }
    
    protected override void OnAppearing()
    {
        (App.Current as App).OnResumeHandler += Handle_OnResumeHandler;
        base.OnAppearing();
    }
    
    protected override void OnDisappearing()
    {
        (App.Current as App).OnResumeHandler -= Handle_OnResumeHandler;
        base.OnDisappearing();
    }