Android:将来自前台服务的接收数据显示到活动内的MapView上

问题描述 投票:0回答:1

我已经实施了foreground service,以便每10秒为我提供当前位置。使用收集的数据,我想在地图上显示路线。

但是,由于节省了电池电量,因此在处理位置跟踪和服务时,电话的屏幕将不会一直打开。因此,活动将调用onPause()onStop()方法,并且MapView更新的最早时间将在onResume()之后。到目前为止,每次向活动广播时,我都会发送所有LatLng对象的列表,清除到目前为止的路由,然后使用Polyline重新显示该路由]

它可以完成工作,但是就系统资源而言,我发现它效率很低。

替代方案将在每次广播中保存,将接收到的LatLng对象保存在活动中初始化的List<LatLng> points=new ArrayList<LatLng>();之类的列表中,并且为了显示数据,计算接收到的坐标与已保存在活动列表中的坐标之间的差,并且仅显示Polyline中的内容。

您怎么看?是否有比这两种更好的方法?

我已经实施了前台服务,每10秒为我提供当前位置。利用收集的数据,我想在地图上显示一条路线。但是,在处理位置跟踪时...

android google-polyline
1个回答
0
投票

设置当前路线的唯一ID。服务运行时,将这些点存储到数据库中。然后广播您的事件(可能带有您当前的路线ID),并将其与“活动”分开加载以获取积分。

© www.soinside.com 2019 - 2024. All rights reserved.