activiti 里面各个方法理解
2024-08-25 12:45:26
/** 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的初始化,重启和销毁操作。
最新文章
- The different between ng-grid &; ui-grid
- ZOJ 3812 We Need Medicine(dp、背包、状态压缩、路径记录)
- JavaScript初学者应注意的七个细节
- 《Linux/Unix系统编程手册》读书笔记6
- This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms. 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分 解决方案
- hdu 1716(dfs)
- BZOJ2693: jzptab
- WIP_DISCRETE_JOBS.STATUS_TYPE
- Demo_CS(移动,切换枪支,发射子弹)
- C# for 循环 迭代法 穷举法
- HDU 1518 Square 搜索
- zoj3211dream city dp 斜率
- [java基础] java中的自动装箱与自动拆箱
- Jquery对话框基本配置
- ES6常用
- 使用docker搭建centos虚拟机
- C# 乐观锁、悲观锁、共享锁、排它锁、互斥锁
- EUV光刻!宇宙最强DDR4内存造出
- 洛谷P2670扫雷游戏题解
- DUMP1 企业级电商项目
热门文章
- 【原】iOS学习之应用程序的启动原理
- ACM: NBUT 1105 多连块拼图 - 水题 - 模拟
- ZeroMQ接口函数之 :zmq_term - 终结ZMQ环境上下文(context)
- Hint when use HTTPAgilityPack
- 访问本地json文件因跨域导致的问题
- CNUOJ 535 黑魔法师之门
- 你听说过哪些坑人 or 赚钱的歪点子?真是骗局太多,傻子都不够用啊!
- Java Basic - Annotation
- 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果
- POST流方式接受数据方法