Push notification 如何使用xamarin.android在firebase服务中再次检索pns句柄令牌

Push notification 如何使用xamarin.android在firebase服务中再次检索pns句柄令牌,push-notification,xamarin.android,firebase-cloud-messaging,devicetoken,Push Notification,Xamarin.android,Firebase Cloud Messaging,Devicetoken,我正在使用Microsoft提供的azure通知中心在我的xamarin.forms应用程序中实现推送通知。该实现运行良好,我能够在android和ios设备上接收通知。我在测试一些用例,遇到了Android中的令牌检索问题,如果由于某种原因,应用程序在设备注册Azure notification hub之前崩溃。下面是我的firebase服务代码 [Service] [IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT&

我正在使用Microsoft提供的azure通知中心在我的xamarin.forms应用程序中实现推送通知。该实现运行良好,我能够在android和ios设备上接收通知。我在测试一些用例,遇到了Android中的令牌检索问题,如果由于某种原因,应用程序在设备注册Azure notification hub之前崩溃。下面是我的firebase服务代码

[Service]
[IntentFilter(new[] { "com.google.firebase.MESSAGING_EVENT" })]
public class FirebaseService : FirebaseMessagingService
{
    readonly AndroidHelper androidHelper = new AndroidHelper();
    public override void OnMessageReceived(RemoteMessage message)
    {
        base.OnMessageReceived(message);
        androidHelper.SendLocalNotification(message.Data);
    }

    //Send pns handle for device installation with Azure Notification Hub.
    public override void OnNewToken(string token)
    {
        PushNotifications.PNSHandle = token;
        // APP CRASH OCCURS
    }
}
每当生成令牌时,我都将其存储在静态变量中,并在以后的设备注册中使用它

但由于OnNewToken()仅在安装后第一次启动应用程序时运行。如果出于某种原因,假设在我将令牌分配给我的静态变量(如上面OnNewToken()中的注释所述)并重新启动应用程序后,我立即发生崩溃,那么我不会再次获得该令牌


任何人都可以在每次应用启动时再次帮助进行令牌检索或重新生成。搜索后,我看到了来自xamarin论坛的帖子,但没有找到我要找的内容。

Hi,你的意思是,在上述情况下,下次无法获得存储的令牌吗?Hi@JuniorJiang MSFT,是的,因此如果应用程序崩溃,当应用程序再次启动时,令牌将不可用。好的,崩溃发生在
OnNewToken
方法中?是的,我正在尝试测试失败用例。因此,如果由于任何原因,在执行OnNewToken()后发生崩溃,那么我如何在重新启动应用程序时再次检索令牌?请查看以下内容:。有一种方法可以手动获取令牌。