从3.0开始,Android支持loaders,loaders提供了异步载入数据以及监视数据源的变化的能力。
使用loaders#
初始化Loader#
getLoaderManager().initLoader( /*loader id*/0,
/*创建loader时的自定义参数*/null,
/*LoaderManager.LoaderCallbacks*/this);
- 回调对象需要实现:
- onCreateLoader()方法,这里需要创建一个新的loader。
- onLoadFinished()方法,
- onLoadReset()方法,
- 如果这个loader的id已经有其他loader使用,则之前的loader会被重用。
- 如果这个loader的id是新的,系统会调用回调对象中的onCreateLoader()。
- LoaderManager会管理loader的生命周期,因此创建好loader之后就不需要管它了
重新启动Loader#
当需要抛弃已存在的loader中的数据时,可以重启loader
getLoaderManager().restartLoader(0, null, this);
创建Loader#
通常在onCreateLoader()方法里创建Loader。一般的Android创建的只有CursorLoader,CursorLoader通过查询ContentProvider返回的cursor提供数据源。
响应onLoadFinished和onLoadReset方法#
- onLoadFinished在loader载入数据后调用,这个方法会确保在loader最后一次载入的数据释放前调用( This method is guaranteed to be called prior to the release of the last data that was supplied for this loader)
- onLoadReset这个方法的调用表示loader在重新初始化,之前load的数据已经没有用了
自定义Loader#
前面说过Android只提供了CursorLoader一种具体的Loader,我们也可以继承AsyncTaskLoader或者Loader来实现自定义Loader。AsyncTaskLoader提供了在其他线程中载入数据的功能,可扩展性比较好。参考AsyncTaskLoader
Loaders guiderLoader
分享到:
相关推荐
Android Loaders _ Reloaded,相关博文:http://www.cnblogs.com/tianzhijiexian/p/4165143.html
将您的可观察对象compose()装入那些可跨活动方向更改缓存的数据而不会泄漏您的活动且不推荐使用的对象。较新的实时数据为此...RxLoader通过在Android Loaders的基础上构建来实现此目的,因此该库是超轻量级的(仅d
Explore the best techniques to use cursors and loaders to achieve optimum results A step-by-step approach to use SQLite for building Android applications Who This Book Is For This is an ideal book for...
Android加载动画库列表 很棒的Android Loading动画库的有组织列表。 指数 载入中 动画圆加载视图 材料 名称 执照 演示版 NumberProgressBar SmoothProgressBar Apache许可证V2 GoogleProgressBar Apache...
Multithreading is essential if you want to create an Android app with a great user experience, but how do you know which techniques can help solve your ... Use loaders to update the Ui with new data
Android下使用loaderManager,详情可以参见博客:http://www.cnblogs.com/plokmju/p/android_Loaders.html
Organizing Android apps and integrating their activities * Working efficiently with services, receivers, and alerts* Managing threads, including advanced techniques using AsyncTasks and loaders* ...
Pro Android 5 shows you how to ...Chapter 27 Loaders Chapter 28 Security and Permissions Chapter 29 Google Cloud messaging and services Chapter 30 Deploying Your Application: Google Play Store and Beyond
Pro Android 5 shows you how to ...Chapter 27 Loaders Chapter 28 Security and Permissions Chapter 29 Google Cloud messaging and services Chapter 30 Deploying Your Application: Google Play Store and Beyond
EzLoaders 大量借鉴如果您不熟悉 Loaders,请阅读的关于加载器的更多信息可以在找到支持EzLoaders 与 Android API 15 及更高版本兼容。用法添加代码EzLoaders 在 maven central 上可用。 对于那些使用 gradle 的人...
SMS App built as an assignment for BuyHatke Android Developer Hiring. Screens Implementations You can find following apis implementation in this project. SMS Content Provider Cursor Loaders ...
点加载器Android dotloader 用点加载器替换默认的Android材质进度条最新版本 : 检查...com.agrawalsuneet.dotsloader.loaders.LazyLoader android:layout_width="wrap_content" android:layout_height="
This is an Android project allowing to realize a beautiful circular fillable loaders to be used for splashscreen for example. USAGE To make a circular fillable loaders add CircularFillableLoaders ...
com.agrawalsuneet.fourfoldloader.loaders.FourFoldLoader android:id="@+id/main_fourfoldloader" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVert
随着时间的流逝,该项目现已被弃用,我个人开始使用Redux / FSM混合。 博客文章即将发布! 飞行员 ...借助MV *方法,这意味着不必考虑UI代码中的异步操作(即,您可以忽略Loaders ,RxLifecycle处理
图书清单应用项目该应用程序接收用户输入,并...工具Gradle v4.1 Android插件v3.0.1 Android API v27 Android构建工具v27 屏幕截图执照Copyright 2018 Srinath ChintapalliLicensed under the Apache License, Version
Dribbbler A Dribbble client with MVP Repository ...rxjava-loaders/ - In the future . rxjava-databinding/ - In the future . Screenshots License Copyright 2015 jack wang Licensed under the Apache
LoaderManager.LoaderCallbacks是3.0之后出现的新特性,通过LoaderManager.LoaderCallbacks接口可以很轻松的实现异步加载数据到Fragment或Activity 中,Loaders提供了回调机制onLoadFinished()通知最终的运行结果,...
Cursor Loaders Job Schedulers View Binding - ButterKnife Volley - for networking Glide - for images Accessbility Features Localised Content Animations App Widgets Custom Views - BreathingProgress, ...
todo-mvp-loaders:基于MVP架构的实现,在获取数据的部分采用了loaders架构。todo-mvp-databinding: 基于MVP架构的实现,采用了数据绑定组件。todo-mvp-clean: 基于MVP架构的clean架构的实现。todo-mvp-dagger2: 基于...