0

我有一个实时磁贴,它可以更新有多少用户在线以及在应用程序中打开了多少大厅。当我的应用程序失去可见性时,它开始更新(在应用程序运行时更新动态磁贴毫无意义),但我希望它在我第一次打开计算机时更新。

我环顾四周,并提到让应用程序成为锁屏应用程序,但仅此而已,没有解释如何做到这一点。

有谁知道如何做到这一点并提供一个很好的小解释或如何做到这一点的链接?

非常感谢,凯文

4

2 回答 2

1

您的假设是正确的,您需要锁定屏幕功能才能运行后台任务,而无需启动您的应用程序一次。主要过程是将应用程序中获取数据的部分提取到可能由计时器触发的后台任务中,并编写一些代码以显示在锁定屏幕上。

当我第一次遇到这个限制时,我有点惊讶,但就电池性能而言,这个设计决定是有道理的:只有在数据绝对值得时才消耗电池电量。如果值得,将它放在锁定屏幕上也很有趣。

MSDN上有一个关于锁屏的很好的概述以及进一步的阅读链接。这比我在这里输入的要好得多。回来解决与实现相关的问题(实际上更符合 SO 的目的)。这个博客也可能有用。

于 2012-12-22T16:37:23.767 回答
1

对于这种行为,您应该使用推送通知。这个msdn链接有更多信息:-

使用磁贴通知 选择正确的通知方法来更新磁贴 有多种机制可用于更新动态磁贴: 本地 API 调用 使用本地内容的一次性预定通知 推送通知,从云服务器发送 定期通知,这以固定的时间间隔从云服务器中提取信息 使用哪种机制的选择很大程度上取决于您要显示的内容以及更新该内容的频率。大多数应用程序可能会在应用程序启动或应用程序内的状态更改时使用本地 API 调用来更新磁贴。这可确保磁贴在启动和退出时是最新的。选择使用本地通知、推送通知、计划通知或轮询通知,单独或组合使用,完全取决于应用程序。例如,当玩家达到新的高分时,游戏可以使用本地 API 调用来更新图块。同时,同一个游戏应用程序可以使用推送通知向同一个用户发送他们的朋友取得的新高分。

于 2012-12-22T16:55:56.433 回答