在Fragment中一个接一个地使用initLoader

时间:2013-11-17 14:22:53

标签: android android-fragments android-loadermanager android-loader

我有一个需要加载7个加载器的片段

onActivityCreate()中的

;

我为所有人调用了initLoader。

public void onActivityCreate(Bundle saveInstanceState){

LoaderManager mgr = getLoaderManager();

mgr.initLoader(0,null,mLoaderCallback0);
mgr.initLoader(1,null,mLoaderCallback1);
mgr.initLoader(2,null,mLoaderCallback2);
mgr.initLoader(3,null,mLoaderCallback3);
mgr.initLoader(4,null,mLoaderCallback4);
mgr.initLoader(5,null,mLoaderCallback5);
mgr.initLoader(6,null,mLoaderCallback6);
}

如何针对内存问题逐一有效地加载它们,

我在想什么

是在onActivityCreated方法中加载第一个加载器 在它的onLoadFinished回调中,我加载第二个加载器,在第二个onLoadFinished i initLoader中加载第三个加载器,依此类推。 好吗 ?或者我想念片段生命周期。

    private LoaderCallbacks<UserFriendResponse> mFirstCallbacks = new LoaderCallbacks<UserFriendResponse>() {

        @Override
        public void onLoaderReset(Loader<UserFriendResponse> arg0) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onLoadFinished(Loader<Type1> arg0,
                Type1 arg1) {
....
...
..
if(isAdded()){
getLoaderManager().initLoader(1,null,mLoaderCallback1);
}


        }

        @Override
        public Loader<Type1> onCreateLoader(int arg0, Bundle arg1) {
            return new CustomLoader(getActivity(), false, true, false, "1",
                    1, username);
        }
    };

注意:我无法进行一次回调,因为每个加载器都会返回不同的数据类型。

0 个答案:

没有答案