【问题标题】:Expiration of background tasks for lock screen provider apps锁定屏幕提供程序应用程序的后台任务到期
【发布时间】:2014-03-02 12:15:44
【问题描述】:

我有一个关于后台任务到期的问题。 “所有计划任务类型的约束”部分下的这篇文章 (http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh202942(v=vs.105).aspx) 指出,如果

  • 应用磁贴固定到开始屏幕,后台代理会更新它
  • 应用处于锁屏状态并向通知发送更新(通过 ShellTile)
  • 该应用用于上传类似OneDrive的图片

我想问一下如何处理全锁屏提供程序。我的应用程序仅更新锁定屏幕图像,因为这是应用程序应实现的目的(它在锁定屏幕上显示您/流行的 Instagram 图片)。锁定屏幕提供程序(如果处于活动状态)是否也会自动更新?我不发送任何磁贴更新(因为它违背了仅作为锁屏应用的目的)。

有人知道我的任务是否过期吗?

谢谢!

【问题讨论】:

    标签: c# multithreading windows-phone-8 windows-phone


    【解决方案1】:

    后台任务未过期。您的任务可能无法运行。用户可以禁用您的应用程序的后台任务,或者如果您的设备的后台任务数量超过。当周期性后台代理的数量达到设备限制或禁用时,将抛出 InvalidOperationException

    LockScreen 提供程序放置在后台代理中,而不是作为 ScheduledTasks。

    在后台运行的代码被放置在派生自 ScheduledTaskAgent 的类中,该类派生自 BackgroundAgent。

    ScheduledTasks 是提醒和警报,它们将根据您在问题中提到的条件过期。

    参考Best Background agent practices

    这个条件对于您的应用程序非常重要,因为它会在 ResourceIntensiveTask 中下载图像:

    注意:由于设备的限制必须满足 要运行资源密集型代理,代理可能会 永远不要在特定设备上运行。例如,如果用户不 可以访问 Wi-Fi 或 PC,他们可能永远不会有非蜂窝网络 连接和他们设备上的资源密集型代理将 从不跑。此外,资源密集型代理一次运行一个,因此 随着安装更多使用资源密集型代理的应用程序 在设备上,代理运行的可能性变得更小。你 在设计应用程序时应考虑到这一点。

    【讨论】:

    • 感谢您的回答,但我还是有点困惑。目前我注册了一个 PeriodicTask ,似乎这些在 14 天后过期。我的整个锁屏更新逻辑都放置在后台代理中,并且不检查它是否是被调用的特定 PeriodicTask。在 PeriodicTask 到期后,我的 ScheduledAgent 还会被调用吗,还是这与注册周期性任务无关?
    • 定期任务不会过期。提醒或警报仅在 14 天后过期。您的后台代理在您的前台应用程序中被归类为周期性或资源密集型,您无需担心。 ScheduledAgent 会在满足要求时调用它。
    猜你喜欢
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多