【问题标题】:Is BackgroundExecutionManager.RequestAccessAsync required to update Live Tiles on the background?在后台更新动态磁贴是否需要 BackgroundExecutionManager.RequestAccessAsync?
【发布时间】:2014-01-28 15:16:39
【问题描述】:

我找到了不同的说明,用于使用 IBackgroundTask 在后台更新 Windows 8.1 应用程序的动态磁贴。其他包括这一行

await BackgroundExecutionManager.RequestAccessAsync();

其他人没有。

问题是,Live Tile 的后台更新是否需要工作?我确实不需要在我的应用中需要锁定屏幕访问权限,只需更新 Live Tile。

【问题讨论】:

    标签: c# microsoft-metro windows-8.1


    【解决方案1】:

    如果您想运行具有锁屏功能的后台任务,则需要调用 RequestAccessAsync()。以下是您的选择:

    1. 您可以创建一个后台任务来更新动态磁贴,而无需锁屏访问。如果您希望它定期运行而不管它是否插入,您需要 RequestAccessAsync()。 Here 是一篇关于何时应该使用 MaintinanceTrigger 和 TimerTrigger 的好文章。
    2. 您可以直接从您的应用更新动态磁贴。
    3. 您可以使用TileUpdater.StartPeriodicUpdate 创建定期磁贴更新
    4. 在 Windows 8.1 中,您可以使用清单中的 TileUpdate 元素更新应用的活动磁贴(查看清单编辑器应用程序页面上的磁贴更新部分。)
    5. 您可以使用推送通知来更新动态磁贴。

    【讨论】:

    • 您能否说得更具体一些(要点 1)。如果我没有调用 RequestAccessAsync(),我的动态磁贴在使用后台任务时不会更新。它应该工作吗?
    • 这是一篇关于这个问题的好文章。您将设置 MaintinanceTrigger 而不是 TimeTrigger(需要 RequestAccessAsync()。blogs.msdn.com/b/windowsappdev/archive/2012/05/24/…
    • 谢谢。 MaintenanceTrigger 仅在交流电源上运行,因此对我来说并不是真正的工作。我是否应该得出结论,在不征得用户许可的情况下在后台拉更新 Live Tile 的唯一方法是通过 MaintenanceTrigger(需要 AC)或 StartPeriodicUpdate(需要外部端点 Uri)?我只想每 24 小时从 App XML 文件中获取新值并将其更新到 Live Tile...外部系统感觉有点矫枉过正:(
    • 如果想让它不管是否插电都定期运行,需要RequestAccessAsync()。
    • 您能否将其添加到答案中,我可以接受。感谢您对迈克尔的所有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多