1

我开发了一个 Windows Phone 应用程序,当它打开并主动运行时它工作正常。它跟踪用户在地图上的移动,并使用图钉显示位置移动。

现在我想确保即使在打开此应用程序时手机被锁定,相同的应用程序也能运行。我添加了以下代码以使其在锁定屏幕下工作。在此之后,当我验证应用程序时,我意识到应用程序被锁定时它没有运行。

我是否需要进行任何其他更改才能在锁定屏幕下完成这项工作。任何帮助将不胜感激。

private void initiliazesettings()
{
    PhoneApplicationService.Current.UserIdleDetectionMode = 
       IdleDetectionMode.Disabled;
}
4

3 回答 3

5

要让您的应用在 Windows Phone 7.0/7.1/8.0 的锁定屏幕下运行,您需要设置 ApplicationIdleDetectionMode,而不是 UserIdleDetectionMode。在此处查看详细信息。

于 2013-01-16T18:46:32.623 回答
1

假设您将方法放置在正确的位置,该代码只会使屏幕保持打开状态,但不会在激活锁定屏幕时使您的应用程序在后台运行。Windows Phone 7 应用程序无法在后台运行,它们会被删除。

于 2013-01-16T17:20:27.417 回答
1

对于 Windows Phone 8,这是可能的 -请参阅 MSDN 中的示例。

但是对于 Windows Phone 7/7.1,您不能这样做。

您可以防止由于用户未与其交互而锁定屏幕(如您的代码所示)。但是,如果您手动锁定屏幕,该应用程序仍将处于休眠或墓碑状态,并且您的位置代码将无法运行。

您唯一的其他选择是使用计划的后台任务来读取手机的位置,但请记住,这与实时数据相差甚远(它是一个缓存位置,在最佳情况下您每 30 分钟只运行一次)。

于 2013-01-16T17:22:18.723 回答