从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
在标签 "motionevent" 中,虽然它通常与Android编程中的手势和触摸事件处理相关,但在当前上下文中,这可能是误标记,因为IonCube与Android或Java无关,而是PHP的扩展。不过,如果存在关联,可能是指某个项目或应用...
该库包含了大量类和方法,涵盖了多个领域,如动画、碎片(Fragments)、加载器(Loaders)、通知(Notifications)、网络操作、视图(Views)等。例如,Fragment是Android 3.0(Honeycomb)引入的,但在v4库中,...
Android加载动画库列表 很棒的Android Loading动画库的有组织列表。 指数 载入中 动画圆加载视图 材料 名称 执照 演示版 NumberProgressBar SmoothProgressBar Apache许可证V2 GoogleProgressBar Apache...
5. **LoaderLab**: Loaders是异步加载数据的组件,特别适合处理I/O密集型任务,如从网络或数据库加载数据。LoaderLab可能涵盖ContentProvider、AsyncTaskLoader的使用,以及如何在配置变化时保持Loader状态。...
首先,我们需要了解LibGDX中的`com.badlogic.gdx.graphics.g3d.loaders`包,这个包提供了各种模型加载器,包括用于解析OBJ文件的`ObjLoader`类。ObjLoader能够读取OBJ文件的内容并将其转换为LibGDX的内部表示,如`...
5. **加载指示器(Loaders)**:虽然不是直接的动画,但Loader API(如`AsyncTaskLoader`)是处理后台数据加载并提供进度反馈的重要工具。结合适当的动画,可以创建出优秀的加载体验。 在"android各种加载动画源码...
**5.1 Loaders** `Loader`框架是Android 3.0引入的,主要用于数据的异步加载和生命周期管理,如`CursorLoader`用于加载SQLite数据库数据。 **5.2 LiveData & ViewModel** Android Architecture Components提供的`...
此外,为了提高性能,你还可以考虑使用Loaders或LiveData等工具来异步加载和处理数据。如果你在实际开发中遇到更多复杂情况,例如合并重复的生日信息,或者根据特定条件筛选联系人,你可能需要进一步深入研究Android...
Organizing Android apps and integrating their activities * Working efficiently with services, receivers, and alerts* Managing threads, including advanced techniques using AsyncTasks and loaders* ...
7. **状态管理**:为了处理数据加载过程中的各种状态(如空数据、加载中、错误),可以使用Loaders或现在流行的Paging Library,它们能帮助我们优雅地处理数据的分页加载和显示。 8. **动画效果**:为了让应用更具...
Google的Android Developer Guide提供了详尽的文档,涵盖了如何使用Fragments、Loaders等关键组件。同时,许多在线课程和论坛(如Stack Overflow)也是学习的好去处,可以解答你在实践中遇到的具体问题。 总结,`...
"35_Loaders"是关于Loader的使用。Loader是异步加载数据的组件,可以避免阻塞UI线程,提供更好的用户体验。源码将教你如何使用CursorLoader加载数据库数据,并在数据改变时自动更新UI。 "09_ListView"是关于...
Material Design动画主要分为过渡动画(Transitions)、触摸反馈(Ripples)和加载指示器(Loaders)等。过渡动画在界面元素之间创建流畅的导航,如进入、退出、滑动等效果。触摸反馈则通过涟漪效果为用户操作提供...
5. **Loaders**:Loaders是处理数据加载和刷新的异步组件,它们在后台运行,可以在数据源变化时自动更新界面。`LoaderManager`帮助管理Loader的生命周期,使得数据加载更加高效且用户友好。 6. **...