当 Here Drive+ 运行时,GPS 在后台运行

Posted

技术标签:

【中文标题】当 Here Drive+ 运行时,GPS 在后台运行【英文标题】:GPS running in background when Here Drive+ is running 【发布时间】:2015-08-19 14:41:14 【问题描述】:

当 HERE Drive+ 在前台运行时,我在后台正确运行我的 wp (8.0) 应用程序时遇到问题。我的应用是基于位置的应用。

我设置了一个小演示项目来重现、隔离和简化问题。

我有一个 GeoLocator,它在前台检查 PositionChanged 事件中的当前位置并将其显示到标签。在后台运行时,它每 5 秒显示一次 toast(向我展示 PositionChanged 事件仍被触发)。

相当前卫的东西,行之有效。

    public MainPage()
    
        InitializeComponent();
        DataContext = this;

        App.LocationWatcher.ReportInterval = 5000;
        App.LocationWatcher.DesiredAccuracy = PositionAccuracy.High;
        App.LocationWatcher.PositionChanged += LocationWatcherOnPositionChanged;
        App.LocationWatcher.StatusChanged += LocationWatcherOnStatusChanged;
    

    private void LocationWatcherOnStatusChanged(Geolocator sender, StatusChangedEventArgs args)
    
        DisplayToast("Status:", args.Status.ToString());
    

    private void LocationWatcherOnPositionChanged(Geolocator sender, PositionChangedEventArgs args)
    
        if (!App.IsRunningInBackground)
        
            Dispatcher.BeginInvoke(() => 
                this.tbkLastUpdatedValue.Text = DateTime.Now.Ticks.ToString();
                this.tbkLatitudeValue.Text = args.Position.Coordinate.Latitude.ToString();
                this.tbkLongitudeValue.Text = args.Position.Coordinate.Longitude.ToString();
            );
        
        else
        
            DisplayToast("Location:", args.Position.Coordinate.Latitude.ToString());
        
    

所以,现在的问题是:当我的应用程序在后台运行时,它会显示它的祝酒词,当我运行任何其他应用程序(包括实际使用 gps 的法线贴图)时,但是当我运行 HERE Drive+ 时,我的 PositionChanged 和我的StatusChanged 事件不再被触发。

当 drive+ 在前台运行时,市场上有一个应用程序能够在后台运行,例如 stated in the marketplace comments(仅限德语​​)

任何想法如何解决此问题或可能导致该问题的原因?

【问题讨论】:

两个想法:第一个:您是否尝试针对 Windows 8.1 RT 进行编译?第二:您确定您的应用程序仍在后台运行吗? HERE Drive+ 可能会消耗过多内存,因此您的应用程序可能会在您启动/使用时暂停。 1st:您能否进一步解释一下,您的意思是什么?我有一个 wp8.0 项目。第二:我不太确定。当我返回我的应用程序时,任何用户输入的数据都会保留在 UI 中,但是当我打开 HERE Drive+ 时,我可以看到我的应用程序的 Application_Deactivated 事件被触发了 第一个:当您将应用程序升级到 WinPhone 8.1 项目时,它的行为可能会有所不同。也许那时它工作正常。 2nd:你恢复激活事件中的数据吗?可能是您的应用程序已被删除 (msdn.microsoft.com/en-us/library/windows/apps/…)。在这种情况下,您不会在后台收到任何定位信息。当内存不足时,Windows Phone 会关闭后台应用程序。 1st:试过了,但问题仍然存在。第二:不,我没有主动恢复数据。如果我不手动保存,当应用程序被墓碑删除时,任何数据都应该消失。 【参考方案1】:

Windows SDK 不再存在。另一种方法是使用 HERE Maps API for javascript,它支持矢量地图数据渲染。

【讨论】:

以上是关于当 Here Drive+ 运行时,GPS 在后台运行的主要内容,如果未能解决你的问题,请参考以下文章

平板电脑处于待机状态时,我的 GPS 应用程序是不是可以继续在后台运行?

iOS:关闭应用程序时如何在后台运行代码?

当应用程序从后台返回时,Xamarin iOS 呈现不同的视图控制器

Android Geofencing API 在后台可以正常工作,但不能用于 GPS

WatchOS 4 未收到后台 GPS 更新

在后台模式下接收 gps 位置更新 ??iOS 8