【问题标题】:How to update the Live Tile once every minute?如何每分钟更新一次动态磁贴?
【发布时间】:2015-01-17 19:44:30
【问题描述】:

我有一个使用 ScheduledTaskAgent(后台任务)更新动态磁贴的 WP 应用程序。

但是,ScheduledTaskAgent 仅每 60 分钟左右更新一次动态磁贴。

有没有办法更频繁地更新动态磁贴(这样我就可以显示分钟时钟、股票报价等)?

谢谢,

【问题讨论】:

    标签: c# windows-phone-8 windows-phone-8.1 windows-8.1 live-tile


    【解决方案1】:

    您不能经常运行代码,但您不需要同时运行代码来设置磁贴通知。有几种选择。

    如果您使用的是 Windows Phone 8.1 或 Windows,第一个选项是使用 ScheduledTileNotification。这对于像时钟场景这样的可预测数据非常有用。您可以在应用程序运行时安排多个磁贴通知。有关演练,请参阅 How to schedule a tile notification。对于 Windows Phone 8,ShellTileSchedule class 至少为一小时。

    第二个是从系统外推送通知。这对于更改股票报价或新电子邮件等网络数据很有用。生成数据的服务器可以向 Windows 通知服务发送磁贴通知,而不是从设备进行轮询,然后将其传送到设备。见Windows Push Notification Services (WNS) overview。对于 Windows Phone 8,请参阅 Sending push notifications for Windows Phone 8

    与尝试直接从只能每 15 或 30 分钟运行一次的代码设置磁贴相比,这两种方法的更新频率更高。

    【讨论】:

    • 您好 Rob,感谢您的意见。在您的第一个选项中,这是否意味着如果更新条件发生变化并且我不再需要更新,我将不得不取消安排(RemoveFromSchedule)队列中的事件?在我的情况下,第二个选项不是一个选项(我没有系统外)。谢谢
    • 是的。如果您的应用确定不再需要排队的更新,您可以取消计划的磁贴更新。为了快速,动态更新推送通知是唯一的选择。如果您还没有自己的服务,则可以使用 Azure 移动服务之类的服务。
    【解决方案2】:

    不,后台任务每 30-60 分钟触发一次,或者根本不触发,例如,如果用户打开节电模式

    【讨论】:

    • 我认为这是微软的一个缺点。虽然我看到他们允许的操作系统(邮件等)。谢谢
    • 邮件等正在使用您的应用程序可以使用的相同推送通知服务。运行持续的后台任务会很快耗尽电池。从系统外推送比从系统内轮询更有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多