推送通知性能问题 [UWP]
Push Notification Performance Issue [UWP]
我的 UWP 项目的推送通知配置有问题。实际上,问题在于性能。为推送通知注册我的应用程序的那段代码(下方)使它在打开时慢得多。
一些测试结果(启动画面加载时间因为我使用 OnStartAsync/Template10)
使用的代码 => 桌面:15 秒,移动:16
代码未使用 => 桌面:3 秒,移动:6
StoreServicesEngagementManager engagementManager =
StoreServicesEngagementManager.GetDefault();
await engagementManager.RegisterNotificationChannelAsync();
移动设备:Microsoft Lumia 950
应用程序。目标版本:内部版本 15063
Microsoft 服务商店 SDK10.1705.16 版本
我想知道人们如何使用这个 SDK 并获得性能?谢谢!
我已经测试了您的代码并在 windows Template10 中重现了您的问题。问题是 RegisterNotificationChannelAsync
方法发出网络请求需要时间。需要多长时间取决于网络环境。
直接在OnStartAsync方法中调用RegisterNotificationChannelAsync
会阻塞主线程。所以,您需要花很长时间等待应用程序启动。
您可以使用async
方法来打包您提到的代码。
private async void RegisterEngagementNotification()
{
StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
await engagementManager.RegisterNotificationChannelAsync();
}
该方法将在子线程中调用。并且应用程序将直接启动。
public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
{
RegisterEngagementNotification();
await NavigationService.NavigateAsync(typeof(Views.MainPage));
}
我的 UWP 项目的推送通知配置有问题。实际上,问题在于性能。为推送通知注册我的应用程序的那段代码(下方)使它在打开时慢得多。
一些测试结果(启动画面加载时间因为我使用 OnStartAsync/Template10)
使用的代码 => 桌面:15 秒,移动:16
代码未使用 => 桌面:3 秒,移动:6
StoreServicesEngagementManager engagementManager =
StoreServicesEngagementManager.GetDefault();
await engagementManager.RegisterNotificationChannelAsync();
移动设备:Microsoft Lumia 950
应用程序。目标版本:内部版本 15063
Microsoft 服务商店 SDK10.1705.16 版本
我想知道人们如何使用这个 SDK 并获得性能?谢谢!
我已经测试了您的代码并在 windows Template10 中重现了您的问题。问题是 RegisterNotificationChannelAsync
方法发出网络请求需要时间。需要多长时间取决于网络环境。
直接在OnStartAsync方法中调用RegisterNotificationChannelAsync
会阻塞主线程。所以,您需要花很长时间等待应用程序启动。
您可以使用async
方法来打包您提到的代码。
private async void RegisterEngagementNotification()
{
StoreServicesEngagementManager engagementManager = StoreServicesEngagementManager.GetDefault();
await engagementManager.RegisterNotificationChannelAsync();
}
该方法将在子线程中调用。并且应用程序将直接启动。
public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args)
{
RegisterEngagementNotification();
await NavigationService.NavigateAsync(typeof(Views.MainPage));
}