Android Xamarin后台服务 - 每x分钟获取一次GPS位置?

时间:2017-12-11 19:33:09

标签: c# android xamarin xamarin.android geolocation

我正在使用Xamarin开发应用程序,我需要一个后台服务,以反复的间隔(例如,每15分钟)获取用户的GPS位置。

这个项目(https://github.com/xamarin/mobile-samples/tree/master/BackgroundLocationDemo)是我能找到的最接近示例代码的项目,它声称该位置会继续更新,即使应用程序在后台也是如此。开箱即用,似乎并非如此。

一旦应用程序移动到后台,就会显示日志,然后它会停止更新GPS。我想知道这是否是正常行为,因为项目描述不是这样。

12-12 08:19:12.324 D/MainActivity(10254): Foreground updating
12-12 08:19:12.345 D/LocationService(10254): Latitude is -44.40749468
12-12 08:19:12.345 D/LocationService(10254): Longitude is 171.25077323
12-12 08:19:12.345 D/LocationService(10254): Altitude is 4
12-12 08:19:12.346 D/LocationService(10254): Speed is 2.37
12-12 08:19:12.346 D/LocationService(10254): Accuracy is 39.664
12-12 08:19:12.346 D/LocationService(10254): Bearing is 350.9
12-12 08:19:12.348 D/MainActivity(10254): Location status changed, event raised
12-12 08:19:12.917 D/AppTracker(10254): App Event: stop
12-12 08:19:12.931 D/MainActivity(10254): OnPause: Location app is moving to background

一旦"应用事件:停止"发生这种情况,应用程序移动到后台,GPS服务不再起作用。另外,我使用Android 8.0 - 不确定它是否与它有关。

任何人都可以提供见解(甚至更好的示例代码/项目)来指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

由于@SushiHangover,我创建了一个Foreground Service。它现在运作得非常好。