zoukankan      html  css  js  c++  java
  • 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));
      
  • 相关阅读:
    数据库ALL和ANY的区别
    数据库-关系代数-投影
    数据库关系代数表达式学习
    数据模型的三要素
    题解 P2812 【校园网络【[USACO]Network of Schools加强版】】
    题解 P2746 【[USACO5.3]校园网Network of Schools】
    题解 P2257 【YY的GCD】
    题解 P6476 【[NOI Online #2 提高组]涂色游戏】
    题解 P2522 【[HAOI2011]Problem b】
    题解 P4782 【【模板】2-SAT 问题】
  • 原文地址:https://www.cnblogs.com/muyuge/p/6152238.html
Copyright © 2011-2022 走看看