1. Loader 装载器 Android3.0以后出来的 它可以使Activity和Fragment 异步加载数据 变得简单(Loader里封装了AsyncTask)

  1. Loader特点:

    1,对每一个Activity或者Fragment有效

    2,提供异步加载数据的机制

    3,监测数据源的变化 ,并对变化返回新的结果

    4,由于配置发生改变 重新创建Loader时 他会自动链接上一个加载器游标,不会重新查询数据

  2. 使用:

    1. 初始化Loader initLoader(编号,查询条件,回调接口);
    2. 实现回调接口 实现三个方法
    3. 在三个方法里做相应的动作

      onCreateLoader(){

      //创建Loader对象 返回Loader

      }

    onLoadFinished{

    //加载数据

    }

    onLoaderReset(){

    //清除数据

    }

    CursorLoader:包含了观察者

    一般和ContentResolver一起使用 加载ContentProvider暴漏出的数据

    通过 Uri设置ContentObserver,检测数据源的变化

    继承与AsyncTaskLoader<>

    AsyncTaskLoader: 自己自定义Loader

    onStartLoading{

    执行在主线程

    forceLoad();//必须执行 强制向下执行

    }

    loadInBackground(){

    //加载数据

    }

    观察者:时刻检测数据的变化

    /**

    • 自定义的观察者
    • @author sxy

      *

      */

      class MyContentObserver extends ContentObserver{

      public MyContentObserver(Handler handler) {

      super(handler);

      // TODO Auto-generated constructor stub

      }

      //当你的数据发生改变时 调用此方法

      @Override

      public void onChange(boolean selfChange) {

      // TODO Auto-generated method stub

      super.onChange(selfChange);

      //重启Loader

      getLoaderManager().restartLoader(1, null, MainActivity.this);

      }

    }

    注册观察者:

        /**
    * 注册观察者对象 给当前Uri
    * 参数1:Uri对象
    * 参数2: 如果返回true 检测到 content:sms content:sms/address content:sms/address/iii
    * 如果返回false 只能检测到当前的content:sms
    *
    * 参数3:观察者
    *
    */
    getContentResolver().registerContentObserver(
    Uri.parse("content://sms"), true, new MyContentObserver(null));

18 Loader 总结的更多相关文章

  1. 18 Loader代码案例

    目录结构: MainActivity.java 代码: package com.qf.day18_loader_demo2; import android.app.Activity; import a ...

  2. 国内及Github优秀开发人员列表

    自从入了Android软件开发的行道,解决问题和学习过程中免不了会参考别人的思路,浏览博文和门户网站成了最大的入口.下面这些列表取名为:国内及Github优秀开发人员列表,就是浏览后的成果. 虽然下述 ...

  3. 理理Vue细节

    理理Vue细节 1. 动态属性名:可使用表达式来设置动态属性名或方法名: <!-- 属性name --> <a :[name]="url"> ... < ...

  4. TP5手动引入PHPEXCEL的方法

    1.先在github里面下载PHPexcel这个类库 2.解压之后把它复制到extend里面 控制器代码如下: 1 <?php 2 /** 3 * Created by PhpStorm. 4 ...

  5. thinkphp5.0 微信扫码支付模式二

    仅供个人参考,方便大家. 一.1)https://pay.weixin.qq.com/index.php/core/home/login  复制此地址 打开微信商户平台. 2)下载安全操作证书(最好在 ...

  6. Maven 虐我千百遍,我待 Maven 如初恋

    前言 在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那 ...

  7. Parse error: syntax error, unexpected '[' in D:\phpStudy\WWW\tp5\thinkphp\library\think\Loader.php on line 18

    g刚学习tp5就遇到了这个问题  百思不得其解,看到官网说明 是基于PHP5.4 设计的  打开 phpstudy版本一看 就呵呵呵了 .还是5.3的版本.更换版本之后 就ok了.

  8. 怎样写一个webpack loader

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...

  9. tornado学习笔记18 _RequestDispatcher 请求分发器

    根据Application的配置,主要负责将客户端的请求分发到具体的RequestHandler.这个类实现了HTTPMessageDelegate接口. 18.1 构造函数 定义: def __in ...

随机推荐

  1. 棋盘 chess

    Description 给出一张 n × n 的棋盘,格子有黑有白.现在要在棋盘上放棋子,要求: • 黑格子上不能有棋子 • 每行每列至多只有一枚棋子 你的任务是求出有多少种合法的摆放方案.答案模 1 ...

  2. bzoj 3673&3674: 可持久化并查集 by zky

    Description n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0& ...

  3. 勤拂拭软件 java web 开发教程(1) - 开发环境搭建

    勤拂拭软件系列教程 之 Java Web开发之旅(1) Java Web开发环境搭建 1 前言 工作过程中,遇到不少朋友想要学习jsp开发,然而第一步都迈不出,连一个基本的环境都没有,试问,如何能够继 ...

  4. SpringBoot学习之mvc

    Spring Boot非常适合Web应用程序开发. 我们可以使用嵌入式Tomcat,Jetty或Undertow轻松创建自包含的HTTP服务器. 大多数Web应用程序将使用spring-boot-st ...

  5. SpringBoot 使用MultipartFile上传文件相关问题解决方案

    1.当上传时未配置上传内容大小,会报错[org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException ...

  6. Eclipse 一直不停 building workspace完美解决总结

    一.产生这个问题的原因多种1.自动升级 2.未正确关闭  3.maven下载lib挂起 等.. 二.解决总结(1).解决方法        方法1.修改eclipse启动文件 eclipse.ini ...

  7. WebService之soap类型的服务和rest类型的服务

    1.引言 WebService顾名思义就是web服务,web服务主要有两种,一种是基于soap类型的服务,一种是基于rest类型的服务,其中soap类型的服务有两种版本,一种是soap1.1版本,一种 ...

  8. electron应用以管理员权限启动

    最近在用electron开发PC桌面应用,其中有个需求就是整个应用以管理员权限启动.很头痛,各种google,baidu. 最后终于解决了,可以分为三个步骤,做个总结分享. 一.如果没有manifes ...

  9. python学习之路基础篇(第七篇)

    一.模块 configparser configparser用于处理特定格式的文件,其本质是利用open来对文件进行操作 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [ ...

  10. 剑指架构师系列-Redis集群部署

    初步搭建Redis集群 克隆已经安装Redis的虚拟机,我们使用这两个虚拟机中的Redis来搭建集群. master:192.168.2.129 端口:7001 slave:192.168.2.132 ...