上一篇主要理了下LoaderCallback, 其中看到LoaderManager在initLoader之后自动调用了Loader的startLoading方法; 这一篇继续理Loader !最后我们就可以把Loader执行过程的整个生命周期画出来了。
先看结构吧,Loader简单多了。
该类源码查看:http://www.oschina.net/code/explore/android-4.0.1/core/java/android/content/Loader.java
首先是startLoading 方法
public final void startLoading() {
mStarted = true;
mReset = false;
mAbandoned = false;
onStartLoading();
}
/***
* Subclasses must implement this to take care of loading their data,
* as per {@link #startLoading()}. This is not called by clients directly,
* but as a result of a call to {@link #startLoading()}.
*/
protected void onStartLoading() {
}
看到没,设置了几个状态, 然后调用onStartLoading方法就结束了, 而onStartLoading方法又是个空方法.. 好了,圆满结束!....
尼玛, 难怪我的loadInBackground方法总是不被调用! 坑爹啊! 那怎么让你自己Loader的loadInBackground正常被调用呢? 只能重写onStartLoading方法呗!
看看官方的示例(http://developer.android.com/intl/zh-CN/reference/android/content/AsyncTaskLoader.html):
/**
* Handles a request to start the Loader.
*/
@Override protected void onStartLoading() {
if (mApps != null) {
// If we currently have a result available, deliver it
// immediately.
deliverResult(mApps);
}
// Start watching for changes in the app data.
if (mPackageObserver == null) {
mPackageObserver = new PackageIntentReceiver(this);
}
// Has something interesting in the configuration changed since we
// last built the app list?
boolean configChange = mLastConfig.applyNewConfig(getContext().getResources());
if (takeContentChanged() || mApps == null || configChange) {
// If the data has changed since the last time it was loaded
// or is not currently available, start a load.
forceLoad();
}
}
有事.. 先到这..
分享到:
相关推荐
curl-loader-0.48.tar.gzcurl-loader-0.48.tar.gz
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
rk3288_loader_v1.08.254.bin
vistaloader_2.1.2_recompiled.rar
我们做项目的时候遇到了出现下边这些错误 requires the ionCube PHP Loader ioncube_loader_win_5.2.dll to be installed by...zend_extension_ts=”文件的目录\ioncube_loader_win_5.2.dll” 必须放在zend行里且最上部
universal-image-loader-1.9.5-sources.jar
资源来自pypi官网。 资源全名:pd_sql_loader-1.3.5.tar.gz
资源来自pypi官网。 资源全名:sf2_loader-0.71.tar.gz
资源分类:Python库 所属语言:Python 资源全名:sf2_loader-0.37.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:librelingo_yaml_loader-1.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
资源来自pypi官网。 资源全名:transmart_loader-1.3.1.tar.gz
资源来自pypi官网。 资源全名:deddiag-loader-0.1.5.tar.gz
资源分类:Python库 所属语言:Python 资源全名:peek-abstract-chunked-data-loader-2.4.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
凯立德地图修改Loader.ini和NAVICONFIG.txt两个文件配置的方法 2010-08-07 10:18:00| 分类: GPS导航地图 | 标签:loader naviconfig navione 文件 凯立德 |字号大 中 小 订阅 请检查下你的程序包里有无LOADER,...
资源来自pypi官网。 资源全名:swh.loader.svn-0.0.54.tar.gz
python库。 资源全名:librelingo_yaml_loader-0.1.0.tar.gz
J2ME Loader_1.6.4-open.apk
资源来自pypi官网。 资源全名:sf2_loader-0.88.tar.gz