/** 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的初始化,重启和销毁操作。

activiti 里面各个方法理解的更多相关文章

  1. Android 自定义 view(四)—— onMeasure 方法理解

    前言: 前面我们已经学过<Android 自定义 view(三)-- onDraw 方法理解>,那么接下我们还需要继续去理解自定义view里面的onMeasure 方法 推荐文章: htt ...

  2. Android 自定义 view(三)—— onDraw 方法理解

    前言: 上一篇已经介绍了用自己定义的属性怎么简单定义一个view<Android 自定义view(二) -- attr 使用>,那么接下来我们继续深究自定义view,下一步将要去简单理解自 ...

  3. C#抽象方法和虚拟方法理解

    http://www.cnblogs.com/denylau/archive/2010/04/11/1709573.html http://www.cnblogs.com/naariah/archiv ...

  4. Android中Matrix的pre post set方法理解(转载来源:Linux社区 作者:zjmdp)

    虽说以前学习过线性代数和图形学原理,但是在实际中碰到matrix还是疑惑了好一阵子,今天通过向同事请教终于找到一点门路,特总结如下: Matrix主要用于对平面进行缩放,平移,旋转以及倾斜操作,为简化 ...

  5. Java中的clone方法-理解浅拷贝和深拷贝

    最近学到Java虚拟机的相关知识,更加能理解clone方法的机制了 java中的我们常常需要复制的类型有三种: 1:8种基本类型,如int,long,float等: 2:复合数据类型(数组): 3:对 ...

  6. js中Function的apply方法与call方法理解

    最近在使用jQuery的$.each方法时很,突然想到$.each($('div'),function(index,entity){});中的这个index和entity是哪冒出来的,而且可有可无的, ...

  7. getSelection、range 对象属性,方法理解,解释

    网上转了一圈发现没有selection方面的解释,自己捣鼓下 以这段文字为例子.. <p><b>法国国营铁路公司(SNCF)20日承认,</b>新订购的2000列火 ...

  8. activity调用finish方法理解

    /** * Call this when your activity is done and should be closed. The * ActivityResult is propagated ...

  9. JS中的call()和apply()方法理解和使用

    1.方法定义call方法: 语法:obj.method.call(thisObj[,arg1[, arg2[, [,.argN]]]]) 定义:调用对象(obj)的一个方法(method),以另一个对 ...

随机推荐

  1. IDE-Sublime【2】-代码智能提示插件SublimeCodeIntel的安装

    一.打开菜单References -> Package Control 二.输入Package Control: install Package,回车 三.输入SublimeCodeIntel, ...

  2. Maven 的插件和生命周期的绑定

    一.Maven 的生命周期 Maven 的生命周期是对所有的构建过程进行抽象和统一.Maven 的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,生命周期只是定义了一系列的阶段,并确定这些阶 ...

  3. [NOIP2011]聪明的质监员 题解

    题目大意: 额--貌似蛮清晰的,就不赘述了. 思路: 首先不难发现M越大Y越小,因此可以二分答案(方向不要弄错),二分出最小的不小于S的Y即可.而计算Y时可用前缀和O(n+m)求得.两种边界情况也要考 ...

  4. 什么是Ajax?

    1. 什么是Ajax?Asynchronous JavaScript and XML(异步的Javascript和XML),它不是某种编程语言,而是一种在无需刷新整个网页的情况下能够更新部分网页的技术 ...

  5. XMLHttpRequest对象用法

    xmlhttprequest is what? 用户后台与服务器交换数据. 可以在不重新加载页面的情况下更新网页: 在页面已加载后从服务器请求数据: 在页面已加载后从服务器接收数据: 在后台向服务器发 ...

  6. C feof

    功能:检测流上的文件结束符.如果文件结束,则返回非0值,否则返回0,文件结束符只能被clearerr()清除. 正确的应该是feof返回0表示文件没有结束,返回1,表示结束.feof实际观察的是上次读 ...

  7. cocos2d-x test学习[1]

    controller.cpp std::function<TestScene*()> callback;//一个是返回值,一个是参数.返回值是TestScene*,参数是()里的东西 Co ...

  8. PostGr-SQL database创建表

    postgres=# create database vertigo_sandbox; postgres=# \connect vertigo_sandbox vertigo_sandbox=# CR ...

  9. 创建两个对象的两种方法,一中\new,另外一种不new

    方法一:   String s1=new String("hello"); String s2=new String("hello");     这里是new了 ...

  10. can't resolve symbol 'R' ...

    in android studio IDE: 解决: Tools -> Android -> Sync Project with Gradle Files