安卓代码优化(定位篇)

本文探讨了安卓应用中定位加载的优化策略,包括在线程中处理定位信息以避免UI卡顿,权限管理,定位成功与失败的处理,以及如何同步定位接口。通过提供定位工具类,简化了定位信息的更新和错误处理。建议在特定场景下选择合适的定位触发时机,如onCreate或onResume,同时强调定位完成后应及时关闭以节省电量和流量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安卓代码优化(定位篇)

安卓的定位加载

继续写安卓的代码优化!今天写点什么呢,写一个关于定位的优化吧。
在公司中,经常会遇到这样的需求。什么商家离你多少多少距离。那么我们经常用的是百度地图、高德地图的定位。为了不影响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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值