我正在开发一个运行UWP的应用程序,我想记录用户's location in real time.I'已阅读许多线程扔谷歌,并得到一些解决方案:ExtendedExecutionSession,app service . 但是这两个解决方案存在同样的问题:无法在应用程序暂停时记录位置 . 我知道uwp中的后台任务,似乎需要一个触发器(例如SystemTrigger)才能启动 . 当应用程序暂停以跟踪/记录位置时,是否可以启动(不使用触发器但直接调用)自定义后台任务?
我正在开发一个运行UWP的应用程序,我想记录用户's location in real time.I'已阅读许多线程扔谷歌,并得到一些解决方案:ExtendedExecutionSession,app service . 但是这两个解决方案存在同样的问题:无法在应用程序暂停时记录位置 . 我知道uwp中的后台任务,似乎需要一个触发器(例如SystemTrigger)才能启动 . 当应用程序暂停以跟踪/记录位置时,是否可以启动(不使用触发器但直接调用)自定义后台任务?
1 回答
首先,我想回答你的问题:
是的,您可以使用ApplicationTrigger类执行此操作 . 请参阅https://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.background.applicationtrigger(它仍然是一个触发器,因为API需要它,但它基本上直接从应用程序调用backgroundtask)
但是这里有一些用于进行位置跟踪的示例和这些东西:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/Geolocation
我认为您正在寻找的是LocationTrigger(参见:https://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.background.locationtrigger)它用于Geofence示例(Scenario5_GeofenceBackgroundTask.xaml.cs)
基本上你这样注册:(来自示例代码)