我正在尝试使用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,因为它消耗的资源更少,并且避免被系统杀死,但它甚至在应用程序关闭后仍然运行,这是不希望的。我应该使用哪一个?随意评论任何其他实现。
提前致谢。
答案 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());
使用上面的代码示例,您可以轻松运行后台服务类,更新设备位置并接收位置值并在地图中显示发射机的确切位置