在Android上实施后台位置跟踪

时间:2016-11-29 16:28:28

标签: android service background location

我正在尝试使用https://developer.android.com/training/location/index.html在我的Android应用上实施位置实时跟踪。问题是我想使用后台进程来完成所有工作,我对应该使用哪种实现有几点疑问。

就我而言,Android 26: aload_1 27: invokevirtual #8 // Method getT:()Ljava/lang/Object; 30: checkcast #10 // class java/lang/Integer 33: invokestatic #11 // Method print:(Ljava/lang/Integer;)V 类创建了一个后台服务,可以附加到Activity或独立。这种实现的缺点是,如果需要释放资源,系统可以杀死该服务。我的问题是,即使应用程序关闭,服务也会运行吗?

另一方面,Android Service类提供批处理调度程序,该调度程序仅在需要完成作业时运行,从而避免系统终止。但似乎调度程序在关闭应用程序后仍然保持运行(这是不可取的,因为我只是希望跟踪服务在应用程序处于活动状态或后台时运行)。

我会选择JobScheduler,因为它消耗的资源更少,并且避免被系统杀死,但它甚至在应用程序关闭后仍然运行,这是不希望的。我应该使用哪一个?随意评论任何其他实现。

提前致谢。

1 个答案:

答案 0 :(得分:2)

可以通过集成Teliver SDK来实现位置跟踪。 Live Tracking made easier

Teliver SDK包含一个代码,该代码运行后台服务以更新操作员设备中的间隔的位置值,而另一个充当接收者的设备将调用特定操作员的位置值并绘制位置。地图。

第1步:    在您的应用程序中初始化Teliver ......

     Teliver.init(this,"TELIVER_KEY");

“TELIVER_KEY”用于标识您从Teliver Dashboard获得的应用程序。

第2步:     现在,您可以通过以下代码开始在必须跟踪的设备中传输位置。

     Teliver.startTrip(new TripBuilder("Tracking_Id").build());

现在设备启动到传输位置,创建了一个前台服务,即使您的应用程序也可以更新位置 在背景中运行..

第3步:  您可以通过以下代码段随时停止传输该位置。

     Teliver.stopTrip("Tracking_Id");

Tracking_Id是用于识别特定传输设备的标识符键。

第4步:     要跟踪正在传输位置的设备,请使用Teliver SDK方法。

     Teliver.startTracking(new TrackingBuilder(new MarkerOption("Tracking_Id")).build());         

使用上面的代码示例,您可以轻松运行后台服务类,更新设备位置并接收位置值并在地图中显示发射机的确切位置