收到推送通知后确定应用程序是否在前台

Ian*_*ton 6 push-notification xamarin.forms

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

当它在前台时,我希望应用程序做出不同的响应。

但是我如何检测它处于哪种状态?

Jan*_*sen 7

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

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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


Edw*_*rey 5

检查应用程序状态

bool isInBackground =
    UIApplication.SharedApplication.ApplicationState == UIApplicationState.Background
Run Code Online (Sandbox Code Playgroud)