我目前正在解决一个我无法解决的问题...
我已经开发了一个WP7应用程序,它定期向服务发送位置更新。因此,我使用的是DispatcherTimer,它工作得很好。现在,我也想在屏幕锁定时执行此操作。因此,我在InitializePhoneApplication()之后的App()中将ApplicationIdleDetectionMode设置为"Disabled“。
现在我有一个非常奇怪的行为,因为在屏幕锁定时运行的计时器似乎结束了,但我不能再次启动它。调用了timer.Start(),但没有调用Tick-Event。当我在我的设备上解锁屏幕时,它又开始工作了…
有谁知道怎么解决这个问题吗?或者其他的建议,我怎样才能达到这样的行为?
问候Dominik
发布于 2011-04-28 16:30:05
我很惊讶,框架本身会在应用程序被锁定时停止活动的计时器,而ApplicationIdleDetection被禁用,尽管这是一种明显的可能性。在RunKeeper中,我们不使用DispatcherTimer来做这件事,我们使用Observable.Timer来跟踪用户在某个活动上的时间。
无论如何,我要建议的一件事是,每隔一段时间发送位置数据可能并不是最有效的。如果你在位置服务上设置了一个移动阈值,那么当用户的位置发生变化时,你只会得到一个位置,然后你可以在每次位置发生变化时发送位置数据。为了在设备锁定时保存电池电量,您可以存储位置,然后在应用程序重新激活时发送它们。
https://stackoverflow.com/questions/5791468
复制相似问题