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

メモリの問題のために、それらを1つずつ効率的にロードするにはどうすればよいですか?

私が考えていたこと

onActivityCreatedメソッドで最初のローダーをonLoadFinishedロードし、そのコールバック内で2番目のローダーをロードし、2番目onLoadFinishedinitLoader3番目などをロードします。いいですか?または、フラグメントのライフサイクルに関して何かが恋しいです。

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

注: 各ローダーが異なるデータ型を返すため、コールバックを 1 つ持つことはできません。

4

0 に答える 0