android 加载器loadermanager.initLoader方法的注意事项
2012-09-12 23:22
531 查看
@SuppressWarnings("unchecked") public <D> Loader<D> initLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<D> callback) { if (mCreatingLoader) { throw new IllegalStateException("Called while creating a loader"); } LoaderInfo info = mLoaders.get(id); if (DEBUG) Log.v(TAG, "initLoader in " + this + ": args=" + args); if (info == null) { // Loader doesn't already exist; create. 如果不存在就重新创建一个 info = createAndInstallLoader(id, args, (LoaderManager.LoaderCallbacks<Object>)callback); if (DEBUG) Log.v(TAG, " Created new loader " + info); } else { if (DEBUG) Log.v(TAG, " Re-using existing loader " + info); //如果存在就将其callback赋值 info.mCallbacks = (LoaderManager.LoaderCallbacks<Object>)callback; } if (info.mHaveData && mStarted) { 如果有值并且已经启动,则是已经完成 // If the loader has already generated its data, report it now. info.callOnLoadFinished(info.mLoader, info.mData); } return (Loader<D>)info.mLoader; }
下面是createAndInstallLoader的源代码
private LoaderInfo createAndInstallLoader(int id, Bundle args, LoaderManager.LoaderCallbacks<Object> callback) { try { mCreatingLoader = true; LoaderInfo info = createLoader(id, args, callback); installLoader(info); return info; } finally { mCreatingLoader = false; } }下面是installLoader的源代码
void installLoader(LoaderInfo info) { mLoaders.put(info.mId, info); if (mStarted) { // The activity will start all existing loaders in it's onStart(), // so only start them here if we're past that point of the activitiy's // life cycle info.start(); } }注意上面的英文翻译,只有在Activity的OnStart以后才会执行此方法,因此我们在执行loadermanager的initLoader方法的时候也需要在onstart以后执行。
相关文章推荐
- IPHONE 开发 8 -- Object C Foundation.h它包括所有的类 方法 集合,-(id)init,iphone上使用Sqlite的注意事项小结
- android 不初始化...一个的问题,getLoaderManager ().initLoader LoaderManager
- 关于Android WebView的loadData方法的注意事项分析
- android上一些方法的区别和用法的注意事项 (转载)
- Android加载器LoaderManager.loaderCallbacks
- android有关SharedPreferences的使用方法及注意事项
- Android Market google play store帐号注册方法流程 及发布应用注意事项
- android上一些方法的区别和用法的注意事项
- android使用代码生成LayerDrawable的方法和注意事项
- 在Android和Windows之间进行RSA加密通讯的方法和注意事项
- 关于Android 5.0 、6.0 、 7.0代码设置WIFI连接方式为静态IP或DHCP的方法及注意事项
- GetComponentInChildren方法的使用注意事项
- android 中 setTextColor 方法使用注意事项
- 使用NSSearchPathForDirectoriesInDomains等获取路径的方法时的注意事项
- android上一些方法的区别和用法的注意事项
- Android加载器LoaderManager.LoaderCallbacks的使用
- Android使用Parcelable传递对象方法及注意事项
- "Android SDK and AVD Manager" cannot be made visible because all of its children are in unavailable
- [Android实例] 最新android studio注意事项打不开等问题6种解决方法
- (转)Android中TextView的SetText()方法注意事项