你好,作为使用BackgroundMediaPlayer
在后台播放轻松音乐的应用程序的一部分,我想实现一种在一段时间后关闭音乐的方法..
我的想法是让用户在音乐停止时选择TimerPicker
,然后将Timer作为支持的任务类型添加到appxmanifest中的声明下的MusicBackgroundTask中。
然后以某种方式正确地使用我的MusicBackgroundTask Windows运行时组件中的ThreadPoolTimer
来停止音乐,但我真的无法在网上找到解释如何在后台任务中使用计时器的工作。
因此,如果有人有一个很好的链接解释或更好的一些工作代码,这将是一个很大的帮助,非常感谢..
答案 0 :(得分:1)
以下是使用IBackgroundTask
显示ThreadPoolTimer
实现的MSDN示例(请参阅SampleBackgroundTask.cs):http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9/sourcecode?fileId=43572&pathId=498327315
这种方法无效的一个原因是,如果您没有保留对IBackgroundTaskInstance.GetDeferral()
返回的对象的引用,这会导致您的后台任务在IBackgroundTask.Run
返回后过早完成。上面链接的示例执行此操作,我相信BackgroundMediaPlayer Audio任务也需要继续播放音乐,所以如果您还没有这个,我会感到惊讶。
最后,appxmanifest文件中MusicBackgroundTask
声明中的“计时器”任务类型对ThreadPoolTimer
的使用没有影响。 “计时器”任务类型允许IBackgroundTask
和TimeTrigger
触发器触发MaintenanceTrigger
入口点。