• utils部分--一些通用的工具类封装


    1、简介

    utils部分是对一些常用的工具类进行简单的封装,使用起来比较方便。这里列举常用的一些。

    2、ContextUtils使用

    主要封装了网络判断。一些方法解释如下:

    1
    2
    3
    4
    5
    6
    7
    8
    //判断是否存在网络连接
    public static boolean hasNetwork(Context context);
     
    //判断GPS是否打开
    public static boolean isGpsEnabled(Context context);
     
    //SD卡是否可用
    public static boolean hasSdCard()

    3、 HttpUtils使用

    这个只做了简单请求封装,没有支持图片上传功能,要使用图片上传功能相见dazzle.common.http部分。

    1
    2
    3
    4
    5
    6
    7
    8
    //GET请求,可带参数,使用UTF-8编码,连接超时和请求超时默认12s
    public static String requestURL(String url, Map<String, String> params) throws IOException;
     
    //POST请求,使用UTF-8编码
    public static String requestURLPost(String url, Map<String, String> paramsMap);
     
    //下载文件,输出流到file里
    public static void downloadURLToFile(String downloadUrl, File file) throws Exception;

    4、ToastUtils使用

    对ToastUtils做了简单的封装,使用更加方便,基本一句话搞定。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //显示吐司信息(较长时间)
    public static void displayTextLong(Context context, String text);
     
    //显示吐司信息(较短时间)
    public static void displayTextShort(Context context, String text);
     
    //显示吐司信息交给handler处理(较长时间)
    public static void displayTextLong2Handler(final Context context, final String text, Handler handler);
     
    //显示吐司信息交给handler处理(较短时间)
    public static void displayTextShort2Handler(final Context context, final String text, Handler handler);

    5、 ProgressDialogUtils使用

    是对ProgressDialog的简单封转,使调用更加简单,一句话搞定。至于实现部分可能static的引用了Context,可能会引起所谓的内存泄露危险,待后面考虑改进。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //单例的progressDialog显示
    public void show(String title);
     
    //单例的progressDialog隐藏
    public void dismiss();
     
    //单例的progressDialog影藏,在线程中使用
    public void dismiss(Handler handler);
     
     
    //上面说的单例可以这样生成单例
    ProgressDialogUtils pdu = ProgressDialogUtils.instance(this);

    6、PreferenceModel使用

    主要是对SharedPreferences存储的封装,使用简单一句话搞定。

    1
    2
    3
    4
    5
    //保存写法,其中name是key,xuan是value,Types.String是类型
    PreferenceModel.instance(this).saveSystemProperties("name","xuan",Types.STRING);
     
    //获取写法,其中name是key,"anan"是在获取不到值时的默认值,Types.String你懂的
    PreferenceModel.instance(this).getSystemProperties("name","anan",Types.STRING);

    7、缓存cache部分使用

    主要是对LRU算法的缓存实现。在手机内存有限的情况下,这种缓存算法性价比还是比较高的。下面是从keel里面拷贝过来的一个很简陋的cache。其实sdk高版本的api中已经有实现的叫:LruCache类。有空用这个重写一下,人家写的总归牛逼点,虽然使用过程中也没看出来我们自己写的比较差。不过去看过源码后发现,人家的确实比较牛逼的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //获取一个默认缓存,默认容量20个数量,如果要缓存bitmap之类的这种缓存有弊端
    LRUPlusCache cache = LRUPlusCacheFactory.getDefaultCache();
     
    //把对象放入缓存
    XuanObj xuanObj = new XuanObj();
    cache.putInCache("name",xuanObj);
     
    //获取
    XuanObj xuanObj = (XuanObj)cache.getFromCache("name");
     
    //清理缓存
    cache.removeAll();

    8、其他

    当然上面只是一些比较常用,还有一些其他的,大致说一下把

    (1)ActionUtils类。封装了打电话,发短信接口。

    (2)AlertDialogUtils类。AlertDialog的封装。类似网页的啊alert,还有多选单选框。

    (3)DateUtils类。keel里面拷贝过来的。对日期的简化封装。

    (4)ServiceUtils类。对Service操作的封装。

    (5)StringUtils类。字符串操作的封装。

    (6)TextViewHtmlUtils类。对TextView可能设置HTML的封装。

    (7)UpdateManager类。更新APK使用模块。包括了APK的下载,和自动安装。

    (8)Validators类。keel里面拷贝过来的,是一些常用的校验方法。

    (9)VersionUtils类。可以获取app系统的一些版本号和版本名称。

    9、media模块

    该模块有两个重要的类。MediaPlayerModel和MediaRecorderModel分别对播放音频和录音进行了封装。

  • 相关阅读:
    Node 命令行工具 commander.js 快速上手
    使用 express 极简处理前端路由的 history 模式问题
    在博客中插入希沃白板课件
    休息一下(屏幕提醒)
    vue htmlWebpackPlugin.options.title 标题设置
    使用 docker 部署 elasticsearch 并安装 ik 中文分词器
    .NET 中的计时 tick 是多长?
    剑指offer队列的最大值(主队列+辅助队列)
    Golang垃圾回收原理解析
    Golangchannel底层实现精要
  • 原文地址:https://www.cnblogs.com/hudabing/p/4271918.html
Copyright © 2020-2023  润新知