我的应用处理原始推送通知,但当它在前台运行或作为后台任务时,它会以不同的方式处理它们。
现在,当应用程序启动时,我检查是否已经注册了bg任务,如果是,那么我取消注册任务并让应用程序处理推送通知,当应用程序关闭或暂停时,我重新注册bg任务。
这种方法对我来说似乎不太干净。是否有更好的方法可以在应用处于活动状态时暂停后台任务,或者从IBackgroundTask
检查应用程序的状态?
答案 0 :(得分:1)
首先,请检查您的通知是否已作为MSDN says传递给 BackgroundTask :
当您的应用云服务向Windows发送通知时,您的应用有机会在显示举报,更新磁贴或徽章或向后台任务发送原始通知之前拦截并处理该通知
如果您有正在运行的应用程序,您应该能够在通知进入后台任务或其他地方之前拦截通知。
如果你想要区分后台任务的工作,根据用户界面,你可以在 LocalSettings 中提供一个负责UI状态的标志,然后让你的BTask检查标志并决定是否进行工作。
用户界面只更改设置中的标记,然后您不必取消注册BTask。