我尝试制作一个非常简单的演示,演示如何在 UWP 中使用后台任务和Toast通知。我是一个简单的任务,它是在网络连接更改时触发的,他的工作是显示一个简单的通知。它当然在操作系统中注册,在清单中选择,此任务运行良好。
我已经创建了一个软件包并在我的笔记本电脑上安装了应用程序,即使在应用程序未启动的时刻也可以运行。任务也有效。
唯一的问题是,当我点击"运行app"通知按钮,我想启动在前台运行的应用程序。它启动应用程序,但我唯一能看到的是我的应用程序的启动画面,没有其他事情发生。我看到了这个通知的MSDN教程,我的XML几乎是一样的。
我的XML通知内容:
<toast launch="app-defined-string">
<visual>
<binding template="ToastGeneric">
<text>Test notification</text>
<text>This is a simple toast notification</text>
<image placement="AppLogoOverride" src="../Assets/icon.png"/>
</binding>
</visual>
<actions>
<action activationType="foreground" content="Run App" arguments="check" />
</actions>
<audio src="ms-winsoundevent:Notification.SMS" />
</toast>
更新
App.xaml.cs中唯一的修改部分:
protected override void OnActivated(IActivatedEventArgs args)
{
if (args.Kind == ActivationKind.ToastNotification)
{
var toastArgs = (ToastNotificationActivatedEventArgs)args;
ToastArg = toastArgs.Argument;
}
}
答案 0 :(得分:2)
您需要从OnActivated调用应用程序的初始化(OnLaunch方法中的内容)。在初始化时,请务必检查您的应用是否正在运行。