developers.android.com上で、 "ローダーが初期化され、アクティブであることを確認します。ローダーがまだ存在しない場合は作成され、アクティビティ/フラグメントが現在開始されている場合はローダーが開始されます。最後に作成されたローダは再利用されます。ローダーが既に存在する場合、initLoaderは何を行いますか?
最後に作成されたローダが再利用されたことはどういう意味ですか? ローダーがすでに存在する場合、initLoader()の直後にどのメソッドを即座に呼び出しますか?
私はローダーでキャッシュがどのように動作するのかまだ分かりませんので、この質問をしています。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportLoaderManager().initLoader(loaderId, null, MainActivity.this);
}
public Loader<String[]> onCreateLoader(int id, final Bundle loaderArgs) {
return new AsyncTaskLoader<String[]>(this) {
String[] mCachedData = null;
@Override
protected void onStartLoading() {
if (mCachedData != null) {
deliverResult(mCachedData);
} else {
forceLoad();
}
}
. . . . .
}
上記のコードでは、ローダーが既に存在する場合、フローは何ですか?どのメソッドをinitLoaderの後に呼びますか?なぜなら、onCreateLoaderを呼び出すと、キャッシュされたDataはnullに再び初期化されるからです。
ローダーが存在する場合は、 'onLoadFinished'が呼び出されるのを待つだけで済みます。 – Enzokie
ああ。どうもありがとう。今、私は分かる! –