如何让Google Map v2在后台运行

时间:2013-07-05 06:38:08

标签: android google-maps

我在项目中的某个方面陷入困境。

我正在开发一个自行车跟踪项目,它在自行车运行时连续绘制路径,路径在那里绘制不是问题,但是当活动进行时c enter code here会丢失或最小化轨道将在后台工作,当用户回到活动时,他可以找到整个轨道。

为此,我使用了服务,但谷歌地图存在问题。

在服务中我使用了位置管理器方法来获取纬度和经度,但它不准确,每次都会变化。

但是在Activity之前,当我使用谷歌地图的onMyLocationChangeListener时,数据将逐点完成。

这是使用LocationManager在服务中获取位置的代码。

 mLocManager = (LocationManager)  getSystemService(TrackService.this.LOCATION_SERVICE);

 mListner = new LocationListner();

 if (mLocManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER))

 mLocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,

 0, 0, mListner);

 else {

 Toast.makeText(TrackService.this, "GPS is not on",
 Toast.LENGTH_SHORT).show();

 onDestroy();

 }

 try {

 mlocManager = (LocationManager)

 getSystemService(getApplicationContext().LOCATION_SERVICE);

 mListner = new LocationListner();

try {

 mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,

 0, mListner);

 } catch (Throwable e) {

 e.printStackTrace();

 }
 try {

 mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,

 0, 0, mListner);

 } catch (Throwable e) {

 e.printStackTrace();

 }

 } catch (Throwable e) {

 e.printStackTrace();

 }

并且在Listener中我已经完成了我的代码。

所以我需要服务中的Google地图或Google地图onMyLocationChange方法来访问服务,或者我如何在后台处理这些内容。

1 个答案:

答案 0 :(得分:2)

不久前谷歌宣布了新的Locations API。强烈建议使用这种新API,因为它在电池使用方面更准确,更有效。

因此,我将首先更换使用此API跟踪用户位置的服务代码。由于Android map v2使用此API获取当前位置

,因此您很可能会获得更准确的数据