android 单例(DCL) 与Location服务之Geocoder

双检锁/双重校验缩(DCL,即double-checked locking)

public class SetDataBase {

    private volatile static SetDataBase mInstance;

    private SetDataBase() {
    }

    public static SetDataBase getInstance() {
        if (mInstance == null) {
            synchronized (SetDataBase.class) {
                if (mInstance == null) {
                    mInstance = new SetDataBase();
                }
            }
        }
        return mInstance;
    }

}

采用DLC模式,两层判断当线程A调用该方法,没初始化完成的的时,这时候内存指针指向了null,线程B再进行调用时,第一次判断,顺利进入,当没有第二层判断,就会出错,所以再添加一层判断,并通过synchronized 加锁,这时候,B就可以知道A在调用,并进入等待状态,等待线程A的调用结束/所以DLC保证了线程的安全,并保证只构建一个对象。

Location服务之Geocoder

利用android原生的Geocoder函数,输入经纬度,判断用户所在的位置
Geocoder可以在街道地址和经纬度地图坐标之间进行转换。它提供了对两种地理编码功能的访问

    private static String convertAddress(Context context, double latitude, double longitude) {
        Geocoder mGeocoder = new Geocoder(context, Locale.getDefault());
        StringBuilder mStringBuilder = new StringBuilder();

        try {
            List<Address> mAddresses = mGeocoder.getFromLocation(latitude, longitude, 1);
            if (!mAddresses.isEmpty()) {
                Address address = mAddresses.get(0);
                mStringBuilder.append(address.getAdminArea()).append(", ").append(address.getLocality()).append(", ").append(address.getCountryName());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、简历准备 1、个人技能 (1)自定义控件、UI设计、常用动画特效 自定义控件 ①为什么要自定义控件? Andr...
    lucas777阅读 10,648评论 2 54
  • 单例模式简介 想要唯一的创建一个对象,我们不通过约定,而是通过制定约束的方式去限制。虽然我们可以建立一个全局变量。...
    wa1terwen阅读 4,140评论 2 5
  • 1.单例模式概述 (1)引言 单例模式是应用最广的模式之一,也是23种设计模式中最基本的一个。本文旨在总结通过Ja...
    曹丰斌阅读 8,092评论 6 47
  • 一.什么是单例模式 单例模式的定义:确保一个类只有一个实例,并提供一个访问他的全局访问点。单例模式是几个设计模式中...
    Geeks_Liu阅读 6,660评论 0 10
  • 对象的创建与销毁 Item 1: 使用static工厂方法,而不是构造函数创建对象:仅仅是创建对象的方法,并非Fa...
    孙小磊阅读 6,335评论 0 3

友情链接更多精彩内容