Android onLoadFinished与onLoaderReset】的更多相关文章

onLoadFinished 这个方法是在前面已创建的加载器已经完成其加载过程后被调用,这个方法保证会在应用到加载器上的数据被释放之前被调用.在此方法中,你必须删除所有对旧数据的使用(因为它将很快会被删除),但是不要自己去释放它们,因为它们的加载器会做这些事情. 加载器一旦了解到应用不再使用数据时,将马上释放这些数据.例如,如果数据是一个从CursorLoader来的游标,你不应调用游标的close(),如果游标被放置在一个CursorAdapter中,你应使用swapCursor()方法,以使…
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer.android.com/training/contacts-provider/retrieve-details.html 这节课将会展示如何获取一个联系人的详细数据,比如电子邮件地址,电话号码,等等.当用户获得一个联系人后,他会想要查看他的详细信息.你可以展示给他们所有的信息,或者只展示某一特定类…
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer.android.com/training/contacts-provider/retrieve-names.html 这节课将讲解如何获取那些和搜索字符串匹配的联系人列表,我们将会使用下面的技术: 匹配联系人姓名 通过将搜索字符串和联系人姓名的全部或部分进行匹配,来获取联系人列表.因为Contac…
reference to : http://blog.csdn.net/happy_horse/article/details/51518280 最近项目中涉及到加载本地的地名.db文件,数据量大,自然不能直接放在UI线程中操作,好在Google在Android3.0以后,提供了AsyncTaskLoader来做一些耗时的异步任务. 一 官方对AsyncTaskLoader的定义及特点介绍如下: Abstract Loader that provides an AsyncTask to do t…
常用包 http://square.github.io/ EventBus Scroller 滚动 拖拽 # android.support.design.widget.CollapsingToolbarLayout 收缩顶部TAB(名片) # android.support.design.widget.NavigationView 左边通栏弹出 # android.support.design.widget.TextInputLayout 带提示输入布局 # android.support.d…
本文涉及的内容有:多线程并发的性能问题,介绍了 AsyncTask,HandlerThread,IntentService 与 ThreadPool 分别适合的使用场景以及各自的使用注意事项,这是一篇了解 Android 多线程编程不可多得的基础文章,清楚的了解这些 Android 系统提供的多线程基础组件之间的差异以及优缺点,才能够在项目实战中做出最恰当的选择. 1. Threading Performance 在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程…
1.CursorLoader使用Demo public class MainActivity extends Activity implements  LoaderManager.LoaderCallbacks<Cursor> { String TITLE = MediaStore.Audio.Media.TITLE; String SINGER = MediaStore.Audio.Media.ARTIST; String SONGURL = MediaStore.Audio.Media.D…
Android的加载器(loader)是从Android 3.0开始出来的东西.要理解这里需要先理解为什么会出现加载器(也有地方把它说成是装载器)呢? 如果没有加载器... 首先Activity是我们的前端页面展现,数据库是我们的数据持久化地址,那么正常的逻辑就是在展示页面的渲染页面的阶段进行数据库查询.拿到数据以后才展示页面. 但是这个逻辑有一些缺点:   首先是查询数据的逻辑放在了UI生成的同个线程中,这个就意味着在查询数据的时候,UI页面生成的工作被阻塞住了.UI一旦被阻塞用户就会被感知出…
<Android 开发权威指南(第二版)>是畅销书<Android开发权威指南>的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45 章精彩内容供读者学习. <Android开发权威指南(第二版)>全面介绍了Android应用开发的各种技术,主要内容包括Android的四大应 用程序组件(Activity.Service.Content Provider和Broadcast Receiver).布局.菜单.控件.资源和本地化.可视化UI设计…
一.各种概念: 1.Loaders: 适用于Android3.0以及更高的版本,它提供了一套在UI的主线程中异步加载数据的框架.使用Loaders可以非常简单的在Activity或者Fragment中异步加载数据,一般适用于大量的数据查询,或者需要经常修改并及时展示的数据显示到UI上,这样可以避免查询数据的时候,造成UI主线程的卡顿. 即使是查询SQLite数据库,用Loaders来操作会更加的简便. Loaders有以下特点: 可以适用于Activity和Fragment. 可以提供异步的方式…
装载器从android3.0开始引进.它使得在activity或fragment中异步加载数据变得简单.装载器具有如下特性: 它们对每个Activity和Fragment都有效. 他们提供了异步加载数据的能力. 它们监视数据源的一将一动并在内容改变时传送新的结果. 当由于配置改变而被重新创建后,它们自动重连到上一个加载器的游标,所以不必重新查询数据. 装载器API概述 在使用装载器时,会涉及很多类和接口们,我们在下表中对它们总结一下: Class/Interface 说明 LoaderManag…
工作内容集中到Contact模块,这个应用查询数据的地方很多,其使用了CursorLoader这个工具大大简化了代码复杂度.Android自3.0提供了Loader机制,当时google的API只是简单的介绍了一下没有给出用法,大家很少有关注.后来因为重度模型下的性能优化,R&D的朋友发现这个东西非常给力,这才开始注意到这个强大的工具.CursorLoader是Loader的子类,可以说是Loader的升级版.这篇小结以loader为基础说明,弄懂原理之后也就明白了CursorLoader. 先…
装载器从android3.0开始引进.它使得在activity或fragment中异步加载数据变得简单.装载器具有如下特性: 它们对每个Activity和Fragment都有效. 他们提供了异步加载数据的能力. 它们监视数据源的一将一动并在内容改变时传送新的结果. 当由于配置改变而被重新创建后,它们自动重连到上一个加载器的游标,所以不必重新查询数据. 装载器API概述 在使用装载器时,会涉及很多类和接口们,我们在下表中对它们总结一下: Class/Interface 说明 LoaderManag…
在之前呢,我们经常会有这种需求,比如在某个activity,或者某个fragment里面,我们需要查找某个数据源,并且显示出来,当数据源自己更新的时候,界面也要及时响应. 当然咯,查找数据这个过程可能很短,但是也可能很漫长,为了避免anr,我们都是开启一个子线程去查找,然后通过handler来更新我们的ui界面.但是,考虑到activity和 fragment 复杂的生命周期,上述的方法 使用起来会很不方便,毕竟你要考虑到保存现场 还原现场 等等复杂的工作来保证你的app无懈可击.所以后来呢谷歌…
Android列表视图(ListView) ListView是一个显示滚动项列表的示视图组(viewgroup),通过使用适配器(Adapter)把这些列表项自动插入到列表中.适配器比如从一个数组或是数据库查询获取到数据,然后转换每一项成为可放入到列表的视图. 列表的显示需要三个元素: (1)    ListView:用来展示列表的view. (2)    适配器:用来把数据映射到ListView上. (3)    数据:具体的将被映射的字符串.图片或是基本组件. 图1 对于我们如何使用适配器来…
ListView就是列表组件,一般通过继承ListActivity使用系统提供的ListView. 所有的AdapterView组件都需要有一个对应的Adapter作为适配器来显示列表中元素的布局方式 见思维导图 AbsListView的常用XML属性: android:choiceMode 设置ListView的选择行为 none:不显示任何选中项 singleChoice:允许单选  multipleChoice:允许多选 android:drawSelectorOnTop 设置为true,…
onLoadFinished 这个方法是在前面已创建的装载器已经完成其加载过程后被调用.这个方法保证会在应用到装载器上的数据被释放之前被调用.在此方法中,你必须删除所有对旧数据的使用(因为它将很快会被删除),但是不要自己去释放它们,因为它们的装载器会做这些事情. 装载器一旦了解到应用不再使用数据时,将马上释放这些数据.例如,如果数据是一个从CursorLoader来的游标,你不应调用游标的close().如果游标被放置在一个CursorAdapter中,你应使用swapCursor()方法,以使…
这是Android性能优化典范第5季的课程学习笔记,拖拖拉拉很久,记录分享给大家,请多多包涵担待指正!文章共10个段落,涉及的内容有:多线程并发的性能问题,介绍了AsyncTask,HandlerThread,IntentService与ThreadPool分别适合的使用场景以及各自的使用注意事项,这是一篇了解Android多线程编程不可多得的基础文章,清楚的了解这些Android系统提供的多线程基础组件之间的差异以及优缺点,才能够在项目实战中做出最恰当的选择. 1)Threading Perf…
例如一个小项目:实现单词本的添加单词等功能 功能:不同的方式实现跨app之间数据的暴露与接收 暴露端app:实现单词的添加(Word.Translate),增删改查: 接收端app:模糊查询,得到暴露端的数据. 暴露端主页及布局: 1.布局: 主页布局:ListView.TextView(empty) item布局:TextView(单词).TextView(翻译) 添加或修改单词的Dialog布局:EditText(hint="word").EditText(hint="t…
本示例演示如何在Android中使用加载器(Loader)来实现获取本机中的所有图片,并进行查看图片的效果. 在这个示例中,我使用android-support-v4.jar中的加载器(Loader)来实现获取本机中所有图片,关于这个包在以前的文章中也提到,是一个非常有用的包,关于这个包的详细信息请大家查看官方文档:http://developer.android.com/sdk/compatibility-library.html. 关于加载器(Loader)是在Android3.0中才开始引…
本文主要探讨Android平台提供的各种异步载入机制,包括它们的适用场景.用法等. 1. AsynTask AsynTask适用于最长能够持续几秒钟的短时间的操作,对于长时间的操作,建议使用java.util.concurrent包下的多线程框架. 定义一个AsynTask时须要提供下面三个泛型參数的实际类型: Params:被传递给后台线程运行的參数的类型 Progress:后台线程运行过程中用于指示进度的类型 Result:后台线程返回的计算结果类型 AsyncTask把一个异步任务分成四个…
之前写过一篇文章<Android学习小Demo(13)Android中关于ContentObserver的使用>,在里面利用ContentOberver去监測短信URI内容的变化.我们先来回想一下,是怎样利用ContentOberver来监測短信内容的变化的. 1)要自己定义一个类,比方SmsContentObserver,继承ContentObserver,而且实现其onChange方法. 2)在onChange方法中去查询相应Uri,比方短信收件箱的内容,并将相应的记录利用Handler发…
目录 创建数据库和使用SQLite 使用Content Provider.Cusor和Content Value来存储.共享和使用应用程序数据 使用Cursor Loader异步查询Content Provider 在应用程序中添加搜索功能 使用原生的Media Store.Contact和Calander Content Provider 创建数据库和使用SQLite Android 通过结合使用SQLite数据库和ContentProvider,提供了结构化数据的持久化功能. SQLite数…
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer.android.com/training/contacts-provider/display-contact-badge.html 这节课将会向你展示如何添加一个QuickContactBadge到你的UI中,以及如何将数据和它捆绑起来.一个QuickContactBadge是一个显示缩略图的空间…
LoaderManager: Loader出现的背景: Activity是我们的前端页面展现,数据库是我们的数据持久化地址,那么正常的逻辑就是在展示页面的渲染页面的阶段进行数据库查询.拿到数据以后才展示页面.但是这个逻辑有一些缺点: 首先是查询数据的逻辑放在了UI生成的同个线程中,这个就意味着在查询数据的时候,UI页面生成的工作被阻塞住了.UI一旦被阻塞用户就会被感知出来了,因此就会出现各种无相应页面(Application Not Response),或者activity页面延迟的现象,这对用…
本文简书同步发布,谢谢关注. http://blog.csdn.net/sk719887916/article/details/51540610 Android开发者都经历过APP UI开发不当 会造成overDraw,导致APP UI渲染过慢,但是很多人却没听过overLoad,overLoad一般是由于开发者在主线程操作耗时操作,导致程序变慢 甚至出现的anr的现象,那么android早已为这种现象提供完美的解决方案,就是今天给大家说的Loader机制. 一 Loader Android的装…
目录 1.加载器特征 2. Loader API 3. 在应用中使用Loader 3.1. 启动加载器 3.2. 重启加载器 3.3. 使用LoaderManager回调 4. 实例: 访问用户联系人 1.加载器特征 用于每个 Activity 和 Fragment 支持异步加载数据. 监控其数据源并在内容变化时传递新结果. 2. Loader API 3. 在应用中使用Loader 主要步骤 Activity 或 Fragment LoaderManager 的实例 一个 CursorLoad…
Android 用于异步加载 ContentProvider 中的内容的机制 -- Loader 机制 (LoaderManager + CursorLoader + LoaderManager.LoaderCallbacks) 关于Android Loader 的文章,百度一搜搜出了一大把.笔者看了好多篇,都吧唧吧唧讲了很多 异步 的好处.但笔者看完后,还是一头雾水,实现异步加载的方式 不是已经有了 Thread + Handle 或者 AsyncTask 等很多机制了吗?(可参考: http…
第1章 用户界面和布局 应用程序的用户界面就是用户能看到并可以与它交互的任何东西.Android提供多种预置的UI组件,如结构化布局对象和允许你为应用程序创建图形用户界面的UI控件.Android也会为特殊的接口提供其他UI模块,如对话框,通知和菜单.在一个Android应用中,所有用户界面元素都是由View和ViewGroup对象创建的.View 是一种可以在屏幕上绘制某种画面并且可以与用户互动的对象.ViewGroup对象则是为了定义布局的接口而保存其他View(和ViewGroup)对象.…
本课将告诉你如何通过后台加载来加速应用启动和降低应用耗电. 后台跑服务 除非你做了特殊指定,否则在应用中的大部分前台操作都是在一个特殊的UI线程里面进行的.这有可能会导致一些问题,因为长时间运行的操作会影响到你应用的响应速度.为了避免这个问题,android框架提供了一系列帮助你在后台通过线程推迟加载的功能,被使用得最多的非IntentService莫属了. 本课将向你描述如何实现一个IntentService,发送请求操作并向其它组件报告结果. 创建一个后台服务 本课将直观地告诉你如何通过后台…