7

一部のドキュメントによると、アクティビティまたはフラグメントのいずれかでローダーを使用できますが、互換パッケージは FragmentActivity のみが getLoaderManager() メソッドを持っていることを示しています。

古いマネージド カーソルは廃止されたため、カーソル ローダーを使用する必要があります。では、なぜこのデータ管理機能を UI ウィジェットの選択に結びつける必要があるのでしょうか? 私には意味がありません。

ありがとうP。

4

2 に答える 2

6

古いマネージド カーソルは廃止されたため、カーソル ローダーを使用する必要があります。

いいえ、マネージド カーソルは引き続き機能します。通常、Android で「非推奨」とは、「できる限りこのメカニズムをサポートしますが、より良いオプションがあると考えています」という意味です。

では、なぜこのデータ管理機能を UI ウィジェットの選択に結びつける必要があるのでしょうか?

そうではありません。から継承するためにフラグメントを使用する必要はありませんFragmentActivity。また、独自の を作成してLoaderManagerCapableActivity、そこから関連するデータ メンバーとメソッドを複製することもできますFragmentActivity(ソース コードはハード ドライブにあります)。ただし、マネージド カーソルと同様にアクティビティのライフサイクルに関連付けられているため、アクティビティに関連付ける必要がありますLoaderManager たとえば、LoaderManagerインスタンスは を介し​​てアクティビティ間で渡されますonRetainNonConfigurationInstance()

于 2011-09-30T12:12:01.337 に答える
1

はい、loaderManager を取得するにはアクティビティに関連付ける必要がありますが、loaderManger を必要とせずにローダーを使用することは可能です。

1) AsynTaskLoader を実装します。
2) クラスに実装したローダーをインスタンス化します。
3) ローダーのリスナーを登録して、ロードが完了したらコールバックを取得できるようにします。
4) ローダーの startLoading メソッドを呼び出します。
5) ロードが完了すると、ロードされたデータを任意の目的に使用できるコールバック メソッドが呼び出されます。

于 2012-10-04T06:33:09.687 に答える