先理解UWP应用程序完整生命周期需要经历如下状态:

1、应用程序第一次被开启,状态由 NotRunning 被激活(Activated)为 Running;
2、当用户点击 Start 按钮或者切换到其他应用,状态由 Running 暂停(Suspending)为Suspended;
3、当用户再次激活应用(如点击磁贴、任务切换、Toast 通知等),状态由 Suspended 恢复(Resuming)为 Running;
4、如果应用在 Suspended 状态下内存不足,系统会自动将应用程序终止(Terminate),状态由 Suspended变为 Not Running;
5、用户可以使用任务管理器强制关闭某个应用程序(CloseByUser),那么此时应用程序的状态也是由Suspended 变为 Not Running。
当应用处于关闭状态下,点击推送通知会触发激活应用,而此时应用如果已经关闭,所以停留在启动界面

image

解决办法:重写App类的OnActivated方法,首先判断启动类型如果是推送通知,再次执行一次启动OnLaunched中的方法

下面是完整的推送通知代码:

image

 



如果您对C#游戏开发感兴趣,可以扫下面二维码加入我们的QQ群来一起学习交流