1

我有一个片段需要加载 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的回调中加载第二个加载器,在第二个加载器中加载第三个,依此类推。好吗 ?或者我错过了关于片段生命周期的一些东西。onLoadFinishedinitLoader

    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);
        }
    };

注意:我不能有一个回调,因为每个加载器返回不同的数据类型。

4

0 回答 0