Geolocation Geolocator.GetGeopositionAsync()首次启动后的奇怪行为

Geolocation Geolocator.GetGeopositionAsync()首次启动后的奇怪行为,geolocation,windows-phone-8,Geolocation,Windows Phone 8,我正在编写需要获取设备位置的Windows Phone 8应用程序(不跟踪更改,只获取位置)。我在起始页的OnNavigatedTo()方法中添加了下一个代码,但在启动应用程序后,即使在超时10秒后,进度指示器也不会隐藏。但是,如果我导航到另一个页面,然后返回,一切都很好。这是在模拟器上发生的,我没有真正的设备。我做错了什么 受保护的异步覆盖无效OnNavigatedTo(NavigationEventArgs e) { 如果(_geopposition==null) { 尝试 { var ge

我正在编写需要获取设备位置的Windows Phone 8应用程序(不跟踪更改,只获取位置)。我在起始页的OnNavigatedTo()方法中添加了下一个代码,但在启动应用程序后,即使在超时10秒后,进度指示器也不会隐藏。但是,如果我导航到另一个页面,然后返回,一切都很好。这是在模拟器上发生的,我没有真正的设备。我做错了什么

受保护的异步覆盖无效OnNavigatedTo(NavigationEventArgs e)
{
如果(_geopposition==null)
{
尝试
{
var geologitor=新的geologitor();
geolocator.DesiredAccuracyInMeters=50;
_progressIndicator=新的progressIndicator
{
IsIndeterminate=true,
Text=“正在获取当前位置,请稍候…”,
IsVisible=true
};
SystemTray.SetIsVisible(这是真的);
SystemTray.SetProgressIndicator(此为_progressIndicator);
_geoPosition=等待geolocator.GetGeoPositionSync(TimeSpan.FromSeconds(5),TimeSpan.FromSeconds(10));
_progressIndicator.IsVisible=false;
SystemTray.SetIsVisible(此项为false);
}
捕获(未经授权的访问例外)
{
MessageBox.Show(“手机设置中禁用了位置”);
}
}
}
谢谢


UPD:只需尝试将此代码添加到空项目中,即可正常工作。试图注释掉OnNavigatedTo中我没有包含在代码段中的某些部分,并在初始化此页面的数据源时找到了原因。很抱歉出现错误警报。

您的代码对我来说运行良好,请尝试经典的重启VS和projecy

代码应该可以工作,并用模拟器和设备(诺基亚820)进行测试


祝你好运

谢谢你的回复!这段代码在clean项目中工作,但在我推荐的OnNavigatedTo()方法中有额外的逻辑。此逻辑从JSON加载一些数据,并为根ListBox设置ItemsSource。如果我注释掉ItemsSource初始化的行,一切都正常。数据源基于源代码中的示例,因此在代码中的某个地方出现了问题。我会重写的。谢谢你抽出时间!