• 18 Loader 总结


    这里写图片描述
    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));
      
  • 相关阅读:
    根据两个判断条件,加载数据库列表getList(state, receiveUserId);
    listview带着chackbox,判断是否选择
    前台ajax不能循环执行,需要向后台传值,后台循环 id in (1,2,3);
    前台交互,根据id、关键字查询、插入新数据到数据库
    synchronized(XXX.class)
    接口测试思路和方法
    概念——同步异步;回调、轮询;序列化
    用例设计三个方面
    jenkins-git-gradle配置项目
    jmeter_https
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152238.html
Copyright © 2020-2023  润新知