activiti 里面各个方法理解

本文详细解析了Android中Loader与LoaderManager的作用与实现原理。针对传统数据查询方式带来的用户体验问题,介绍了Loader如何在独立线程中读取数据并监控数据更新,以及LoaderManager如何管理和控制Loader的生命周期。
摘要由CSDN通过智能技术生成
/** 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的初始化,重启和销毁操作。

转载于:https://www.cnblogs.com/liu-fei/p/5511278.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值