【发布时间】:2015-03-26 10:21:58
【问题描述】:
我正在做一个显示 toast 通知的应用程序,但如果用户打开了应用程序,则必须发送任何通知。
如果我想避免在打开应用程序时显示新通知,我应该知道用户是否正在使用该应用程序。
我如何知道应用程序是否在 Wp 8.1 中打开? (不是在后台运行,我的意思是此时正在被用户使用)。
谢谢。
【问题讨论】:
我正在做一个显示 toast 通知的应用程序,但如果用户打开了应用程序,则必须发送任何通知。
如果我想避免在打开应用程序时显示新通知,我应该知道用户是否正在使用该应用程序。
我如何知道应用程序是否在 Wp 8.1 中打开? (不是在后台运行,我的意思是此时正在被用户使用)。
谢谢。
【问题讨论】:
如果您从后台任务显示通知,只需在本地存储中添加一个标志,指示您的应用是否打开:
LocalSettings.Values.Add("IsAppOpen", true);
现在您所要做的就是在您的应用处于以下状态时将该标志设置为 true 或 false:
您可以使用标准处理程序:
Application.Current.Resuming += new EventHandler<Object>(App_Resuming);
Application.Current.Suspending += new SuspendingEventHandler(App_Suspending);
OnLaunched / OnActivated 应该已经在您的 App.xaml.cs 中实现。在所有这些处理程序中,将您的标志设置为相应的值:
LocalSettings.Values["IsAppOpen"] = true; // Or false, when the app is suspended
您可以从后台进程中读取标志并停止显示通知。
【讨论】: