/** Return the intent that started this activity. */
public Intent getIntent() {
return mIntent;
}
public void setIntent(Intent newIntent) {
mIntent = newIntent;
}
/** Return the application that owns this activity. */
public final Application getApplication() {
return mApplication;
}
/** Is this activity embedded inside of another activity? */
public final boolean isChild() {
return mParent != null;
} /** Return the parent activity if this view is an embedded child. */
public final Activity getParent() {
return mParent;
} /** Retrieve the window manager for showing custom windows. */
public WindowManager getWindowManager() {
return mWindowManager;
}
public Window getWindow() {
return mWindow;
}
/**
* Return the LoaderManager for this activity, creating it if needed.
*/
public LoaderManager getLoaderManager() {
if (mLoaderManager != null) {
return mLoaderManager;
}
mCheckedForLoaderManager = true;
mLoaderManager = getLoaderManager("(root)", mLoadersStarted, true);
return mLoaderManager;
}
LoaderManager : 首先是查询数据的逻辑放在了UI生成的同个线程中,这个就意味着在查询数据的时候,UI页面生成的工作被阻塞住了。UI一旦被阻塞用户就会被感知出来了,因此就会出现各种无相应页面(Application Not Response),或者activity页面延迟的现象,这对用户体验来说是不可接受的。

 其次是在渲染页面的时候需要固定需要进行一次数据查询,但是这个是很不节省资源的。假如一个Activity从一个停止状态回到前台,那么这个时候尽管数据并没有变化,但是也需要进行一次query操作。在浪费资源的同时也再次增加了页面渲染失败的风险。

还有就是当数据变化的时候如何通知页面进行修改呢?这个时候往往就又要创建一个monitor的角色,来当数据源变化的时候来让页面重新调用requery。

因此在Android的越来越提倡用户体验的今天,加载器和加载管理器(Loader,LoaderManager)就出现了。

Loader有什么作用?

1 在单独的线程中读取数据

2 监视数据的更新

而LoaderManager就是加载器的管理器,一个LoaderManager可以管理一个或多个Loader,一个Activity或者Fragment只能有一个LoadManager。LoaderManager管理Loader的初始化,重启和销毁操作。

最新文章

  1. The different between ng-grid & ui-grid
  2. ZOJ 3812 We Need Medicine(dp、背包、状态压缩、路径记录)
  3. JavaScript初学者应注意的七个细节
  4. 《Linux/Unix系统编程手册》读书笔记6
  5. This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分 解决方案
  6. hdu 1716(dfs)
  7. BZOJ2693: jzptab
  8. WIP_DISCRETE_JOBS.STATUS_TYPE
  9. Demo_CS(移动,切换枪支,发射子弹)
  10. C# for 循环 迭代法 穷举法
  11. HDU 1518 Square 搜索
  12. zoj3211dream city dp 斜率
  13. [java基础] java中的自动装箱与自动拆箱
  14. Jquery对话框基本配置
  15. ES6常用
  16. 使用docker搭建centos虚拟机
  17. C# 乐观锁、悲观锁、共享锁、排它锁、互斥锁
  18. EUV光刻!宇宙最强DDR4内存造出
  19. 洛谷P2670扫雷游戏题解
  20. DUMP1 企业级电商项目

热门文章

  1. 【原】iOS学习之应用程序的启动原理
  2. ACM: NBUT 1105 多连块拼图 - 水题 - 模拟
  3. ZeroMQ接口函数之 :zmq_term - 终结ZMQ环境上下文(context)
  4. Hint when use HTTPAgilityPack
  5. 访问本地json文件因跨域导致的问题
  6. CNUOJ 535 黑魔法师之门
  7. 你听说过哪些坑人 or 赚钱的歪点子?真是骗局太多,傻子都不够用啊!
  8. Java Basic - Annotation
  9. 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果
  10. POST流方式接受数据方法