无论应用程序是在后台还是在前台运行,iOS都会在收到推送通知时调用void ReceivedRemoteNotification(UIApplication application, NSDictionary userInfo)

当它处于前台时,我希望该应用做出不同的响应。

但是,如何检测它处于哪个状态?

最佳答案

您可以监视应用程序生命周期事件:

public partial class App : Xamarin.Forms.Application
{
    public static bool IsInForeground { get; set; } = false;

    protected override void OnStart()
    {
        IsInForeground = true;
    }

    protected override void OnSleep()
    {
        IsInForeground = false;
    }

    protected override void OnResume()
    {
        IsInForeground = true;
    }
}

然后在您的任何页面或服务中检查App.IsInForeground

10-04 13:54