18 Loader 总结
1. Loader 装载器 Android3.0以后出来的 它可以使Activity和Fragment 异步加载数据 变得简单(Loader里封装了AsyncTask)
- Loader特点:
1,对每一个Activity或者Fragment有效
2,提供异步加载数据的机制
3,监测数据源的变化 ,并对变化返回新的结果
4,由于配置发生改变 重新创建Loader时 他会自动链接上一个加载器游标,不会重新查询数据 使用:
- 初始化Loader initLoader(编号,查询条件,回调接口);
- 实现回调接口 实现三个方法
- 在三个方法里做相应的动作
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 总结的更多相关文章
- 18 Loader代码案例
目录结构: MainActivity.java 代码: package com.qf.day18_loader_demo2; import android.app.Activity; import a ...
- 国内及Github优秀开发人员列表
自从入了Android软件开发的行道,解决问题和学习过程中免不了会参考别人的思路,浏览博文和门户网站成了最大的入口.下面这些列表取名为:国内及Github优秀开发人员列表,就是浏览后的成果. 虽然下述 ...
- 理理Vue细节
理理Vue细节 1. 动态属性名:可使用表达式来设置动态属性名或方法名: <!-- 属性name --> <a :[name]="url"> ... < ...
- TP5手动引入PHPEXCEL的方法
1.先在github里面下载PHPexcel这个类库 2.解压之后把它复制到extend里面 控制器代码如下: 1 <?php 2 /** 3 * Created by PhpStorm. 4 ...
- thinkphp5.0 微信扫码支付模式二
仅供个人参考,方便大家. 一.1)https://pay.weixin.qq.com/index.php/core/home/login 复制此地址 打开微信商户平台. 2)下载安全操作证书(最好在 ...
- Maven 虐我千百遍,我待 Maven 如初恋
前言 在如今的互联网项目开发当中,特别是Java领域,可以说Maven随处可见.Maven的仓库管理.依赖管理.继承和聚合等特性为项目的构建提供了一整套完善的解决方案,可以说如果你搞不懂Maven,那 ...
- 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了.
- 怎样写一个webpack loader
div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...
- tornado学习笔记18 _RequestDispatcher 请求分发器
根据Application的配置,主要负责将客户端的请求分发到具体的RequestHandler.这个类实现了HTTPMessageDelegate接口. 18.1 构造函数 定义: def __in ...
随机推荐
- GotoAndPlay
10月3日,在杭州市西湖景区,一只小松鼠不停地接受一道道食物,花生.玉米.饼干,可谓来者不拒,憨态可掬的模样吸引了众多围观者...Description 小松鼠终于吃撑了,她决定逃离这个地方. 我 ...
- 【20170920校内模拟赛】小Z爱学习
所有题目开启-O2优化,开大栈空间,评测机效率为4亿左右. T1 小 Z 学数学(math) Description 要说小 Z 最不擅长的学科,那一定就是数学了.这不,他最近正在学习加法运算.老 ...
- 【bzoj4443 scoi2015】小凸玩矩阵
题目描述 小凸和小方是好朋友,小方给了小凸一个 nn × mm (n \leq m)(n≤m) 的矩阵 AA ,并且要求小凸从矩阵中选出 nn 个数,其中任意两个数都不能在同一行或者同一列.现在小凸想 ...
- 利用 socket 发送 get/post 请求
思路:利用 fsockopen 函数与要请求的主机建立一个通信通道,再将请求行.头信息.主体信息通过这个通道传输给主机实现请求的发送.利用这种方式发送 get 请求就是常说的小偷程序,发送 post ...
- AspNetCoreApi 跨域处理
AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题: 浏览器安全限制了前端脚本跨站点的访问资源,所以在调用WebApi 接口时不能成功 ...
- C语言程序第二次作业
(一)改错题 1.输出带框文字:在屏幕上输出以下3行信息. ************* Welcome ************* 源程序 include int mian() { printf(&q ...
- IE6浏览器有哪些常见的bug,缺陷或者与标准不一致的地方,如何解决
IE6不支持min-height,解决办法使用css hack: .target { min-height: 100px; height: auto !important; height: 100px ...
- java中JSON转换
1.JSON介绍 JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度. JSON就是一串字符串 只不过元素会使用特定的符 ...
- jQuery 选择器 prop() 和attr()
Day30 jQuery 1.1.1.1 什么是jQuery? n jQuery是javaScript的前端框架.对常见的对象和常用的方法进行封装,使用更方便. 它兼容CSS3,还兼容各种浏览器.文档 ...
- Linux服务器搭建相关教程链接整理
Linux: Linux 教程 | 菜鸟教程 linux下如何添加一个用户并且让用户获得root权限 - !canfly - 博客园 Git: 在 Linux 下搭建 Git 服务器 - 黄棣-dee ...