C# Forms-Android/iOS:如果应用程序被终止,推送通知将不起作用

C# Forms-Android/iOS:如果应用程序被终止,推送通知将不起作用,c#,xamarin.forms,push-notification,xamarin.android,android-notifications,C#,Xamarin.forms,Push Notification,Xamarin.android,Android Notifications,我使用了https://github.com/CrossGeeks/PushNotificationPlugin用于my xamarin.forms应用程序中的推送通知 我目前面临的主要问题是,一旦应用程序关闭,通知就不会到达设备。以下是推送通知的工作原理: 如果应用程序位于前台或后台,它就会工作 如果杀死应用程序,然后发送通知,它将不起作用 如果您再次打开应用程序,并且它再次处于后台或前台,则通知无法工作 所以,只有当应用程序安装在设备中并且处于运行状态时,它才会第一次工作 前景或背景。

我使用了
https://github.com/CrossGeeks/PushNotificationPlugin
用于my xamarin.forms应用程序中的推送通知

我目前面临的主要问题是,一旦应用程序关闭,通知就不会到达设备。以下是推送通知的工作原理:

  • 如果应用程序位于前台或后台,它就会工作
  • 如果杀死应用程序,然后发送通知,它将不起作用
  • 如果您再次打开应用程序,并且它再次处于后台或前台,则通知无法工作
所以,只有当应用程序安装在设备中并且处于运行状态时,它才会第一次工作
前景或背景。
有人知道如何处理这个问题吗?
我已经在Android和iOS中初始化了插件,并设置了所有必需的东西

我使用的软件包版本:

  • Xamarin.表格-4.7.0.968
  • Plugin.PushNotification-1.3.0
App.xaml.cs onStart方法中的1个代码
CrossPushNotification.Current.OnTokenRefresh+=(s,p)=>
{
if(Device.RuntimePlatform==Device.Android)
{
DeviceToken=p.令牌;
}
};
CrossPushNotification.Current.OnNotificationReceived+=异步(s,p)=>
{
//处理到达通知的逻辑
};
CrossPushNotification.Current.OnNotificationOpened+=异步(s,p)=>
{
//通知点击处理程序代码在这里
};
CrossPushNotification.Current.OnNotificationDeleted+=(s,p)=>
{
Debug.WriteLine(“解散”);
}; 

2 Android主应用程序类
[应用程序]
公共类main应用程序:应用程序
{
公共主应用程序(IntPtr句柄,JNIhandler):基本(句柄,transer)
{
}
public override void OnCreate()
{
base.OnCreate();
//设置运行Android Oreo时应用程序的默认通知通道
if(Build.VERSION.SdkInt>=BuildVersionCodes.O)
{
//在此处更改默认通知通道id
PushNotificationManager.DefaultNotificationChannelId=“DefaultChannel”;
//在此处更改默认通知频道名称
PushNotificationManager.DefaultNotificationChannelName=“常规”;
}
//如果进行调试,则每次都应重置令牌。
#如果调试
PushNotificationManager.Initialize(这是true);
#否则
PushNotificationManager.Initialize(这是false);
#恩迪夫
//PushNotificationManager.IconResource=Resource.Drawable.icon;
//在此处关闭应用程序时处理通知
CrossPushNotification.Current.OnNotificationReceived+=(s,p)=>
{
};
}
}

3 Android:MainActivity类
protected async override void OnCreate(Bundle savedInstanceState)
{
加载应用程序(新应用程序());
PushNotificationManager.ProcessIntent(这个,Intent);
}

我测试了这个示例,当应用程序是背景或前景时,它可以正常工作。当应用程序关闭并再次打开时,它也可以正常工作。您在发布模式下测试过它吗?首先从后台杀死你的应用程序,然后不打开它尝试发送通知,它将无法工作。再次打开它,然后尝试发送通知它不工作。我已经在android棒棒糖5.0设备上进行了测试。在这里分享你的样品。你的nuget版本?我在发布模式下更改它,然后在Emulator 9.0中测试它,首先从后台杀死我的应用程序,然后发送通知,我将从statusbar获得此消息。然后打开应用程序,发送通知,我也收到了。你是如何发送测试通知的?我从Firebase云消息发送通知,你可以对这个示例进行测试,当应用程序处于后台或前台时,它工作正常。当应用程序关闭并再次打开时,它也可以正常工作。您在发布模式下测试过它吗?首先从后台杀死你的应用程序,然后不打开它尝试发送通知,它将无法工作。再次打开它,然后尝试发送通知它不工作。我已经在android棒棒糖5.0设备上进行了测试。在这里分享你的样品。你的nuget版本?我在发布模式下更改它,然后在Emulator 9.0中测试它,首先从后台杀死我的应用程序,然后发送通知,我将从statusbar获得此消息。然后打开应用程序,发送通知,我也知道了。你是如何发送测试通知的?我从Firebase云消息发送通知,你可以