单次定位,无法销毁,总是周期定位;周期定位设置的时间间隔总是无法生效;只因本人未扣demo直接从网上copy的就这么悲剧···
然后今天拔了一下官方demo,瞬间就解决掉了,尴尬的是我瞅来瞅去,都一样,就是顺序有些微差异,真是醉了
单次定位:
private AMapLocationClientOption getDefaultOption() { // 初始化AMapLocationClientOption对象 AMapLocationClientOption mLocationOption = new AMapLocationClientOption(); // 设置定位模式为AMapLocationMode.Hight_Accuracy,高精度模式。 mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); // 获取一次定位结果: mLocationOption.setOnceLocation(true); // 获取最近3s内精度最高的一次定位结果: mLocationOption.setOnceLocationLatest(true); // 开启缓存机制 mLocationOption.setLocationCacheEnable(true); return mLocationOption; }周期定位:
private void resetOption() { // 设置是否需要显示地址信息 locationOption.setNeedAddress(true); /** * 设置是否优先返回GPS定位结果,如果30秒内GPS没有返回定位结果则进行网络定位 注意:只有在高精度模式下的单次定位有效,其他方式无效 */ locationOption.setGpsFirst(false); // 设置是否开启缓存 locationOption.setLocationCacheEnable(true); // 设置是否单次定位 locationOption.setOnceLocation(false); // 设置是否等待设备wifi刷新,如果设置为true,会自动变为单次定位,持续定位时不要使用 locationOption.setOnceLocationLatest(false); // 设置是否使用传感器 locationOption.setSensorEnable(false); // 设置是否开启wifi扫描,如果设置为false时同时会停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差 // 设置发送定位请求的时间间隔,最小值为1000,如果小于1000,按照1000算 locationOption.setInterval(5000); // 设置网络请求超时时间 locationOption.setHttpTimeOut(30000); }