安卓代码优化(定位篇)
安卓的定位加载
继续写安卓的代码优化!今天写点什么呢,写一个关于定位的优化吧。
在公司中,经常会遇到这样的需求。什么商家离你多少多少距离。那么我们经常用的是百度地图、高德地图的定位。为了不影响UI卡顿,一般定位三方都是在线程中处理定位信息,这样也是应该的。
所以,我们在使用的使用 要考虑 权限、定位成功、定位失败的问题。
还有多接口请求的时候,不需要定位接口是不是要放定位外面的问题。这样接口会不会走的快一些。
这这里提供的是 更新定位和请求接口分开。
实现定位接口同步。
目录
代码块
定位工具类:
package com.steptowin.eshop.common.tools;
import com.amap.api.location.AMapLocation;
import com.amap.api.location.AMapLocationListener;
import com.steptowin.eshop.m.sql.bean.Location;
import com.steptowin.library.base.app.Pub;
import com.steptowin.map.amap.AMapWrapper;
/**
* Created by fjw on 2017/3/28.
*/
public class LocationHelper {
static LocationHelper intance;
private AMapWrapper mapWrapper;
private double lat;
private double longitude;
Location myLocation;
public static LocationHelper getInstance() {
synchronized (LocationHelper.class) {
if (intance == null) {
intance = new LocationHelper();
}
return intance;
}
}
public void updateLocation() {
mapWrapper = AMapWrapper.newInstance(null);
mapWrapper.getLocation(new AMapLocationListener() {
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation.getErrorCode() == AMapLocation.LOCATION_SUCCESS) {
myLocation = Location.create(aMapLocation);
lat = aMapLocation.getLatitude();
longitude = aMapLocation.getLongitude();
}
//定位完就关掉
mapWrapper.stop();
}
});
}
public String getDistance(String begin, String distance) {
if (lat <= 0 || l