基于GPS的应用程序未在Windows手机的锁定屏幕下运行

时间:2013-01-16 17:16:08

标签: windows-phone-7 windows-phone-7.1 windows-phone-8 windows-phone

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

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

在锁定屏幕下进行此项工作是否需要进行任何其他更改。非常感谢任何帮助。

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

3 个答案:

答案 0 :(得分:5)

要让您的应用在Windows Phone 7.0 / 7.1 / 8.0上的锁定屏幕下运行,您需要设置ApplicationIdleDetectionMode,而不是UserIdleDetectionMode。详情请见here

答案 1 :(得分:1)

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

答案 2 :(得分:1)

对于Windows Phone 8,这是可能的 - see the sample here from MSDN.

但是对于Windows Phone 7 / 7.1,您无法执行此操作。

您可以阻止屏幕因用户未与其交互而锁定(如代码所示)。但是,如果您手动锁定屏幕,应用程序仍将处于休眠或逻辑删除状态,您的位置代码将无法运行。

您唯一的另一个选择是使用预定的后台任务来读取手机的位置,但请记住,这远远不是实时数据(它是一个缓存的位置,您只能在每30分钟运行一次最好的情况)。