无需过多介绍,这里是基本场景。
我有一个从服务器下载文件的 Metro 应用程序。
下载文件后,将ListView在UI中使用其基本属性更新 a。如果用户ListViewItem从 中选择一个ListView,它的StorageFile内容会显示在它旁边。用户然后根据选择的StorageFile内容采取一些行动。
现在对于设计问题:
On Suspendingor Shutdown- 我希望应用程序继续从服务器下载文件,所以我注册了2 BackgroundTasks。一个是 a SystemTrigger,它立即启动,另一个是 a TimeTrigger,每15分钟启动一次。还会发出通知,BackgroundTasks以便用户知道有更多文件可用。
我在事件引发(和 on )Register时执行这些任务。当事件引发或从头开始构建应用程序时,我将执行这些任务。这确保了UI或者负责处理,而不是两者都负责。SuspendingShutdownUnregisterResumingBackgroundTask
在 Visual Studio 中对此进行测试时,BackgroundTasks按预期工作。但是,在 Visual Studio 之外BackgroundTasks似乎永远不会触发。这些BackgroundTasks请求锁定屏幕访问,通过BackgroundExecutionManager.RequestAccessAsync().
这种设计是否存在根本缺陷,还是我错过了一些非常简单的东西?任何帮助,将不胜感激。