AsyncTaskLoader の使い方 (4/8) 〜 よくある間違いと回避法

AsyncTaskLoader___Android_Developers

AsyncTaskLoader | Android Developers


目次

1. Thread と AsyncTask
2. AsyncTaskLoader の利点
3. LoaderManager の利用
4. よくある間違いと回避法
5. 基本的な Loader の実装
6. いろいろな Loader の使用例
7. データベースと CursorLoader
8. Loader の弱点を克服する


4. よくある間違いと回避法

1. 意味のないローダーIDを作成する

Loader を初期化/再起動するときに、ローダーIDをインクリメントしたり、ランダムに作成する。

Loaderの再利用の妨げとなり、混乱にしかならないので、Loaderの種類ごとに、単一一意のIDを使用する。

2. アプリ内のすべてのローダーに対してのIDを定数で作成する。

各LoaderManagerは 独立しているので、Activity や Fragment内でローダーの種類ごとに privateな定数を作成する。

続きを読む >>


AsyncTaskLoader の使い方 (2-3/8) 〜 AsyncTaskLoader の利点/LoaderManager の利用

AsyncTaskLoader___Android_Developers

AsyncTaskLoader | Android Developers


目次

1. Thread と AsyncTask
2. AsyncTaskLoader の利点
3. LoaderManager の利用
4. よくある間違いと回避法
5. 基本的な Loader の実装
6. いろいろな Loader の使用例
7. データベースと CursorLoader
8. Loader の弱点を克服する


2. AsyncTaskLoader の利点

AsyncTaskLoader だけでなく Loader 全般。

Activity や Fragment は再作成後、同一の Loader に再接続して最終の結果を取得できる。

もし Loader が切断されたあと結果がきたら、再作成時の再接続時のためにキャッシュに保存することができる。

Loader はデータソースを監視しており、内容が変更されると新しい結果を提供する。

Cursor のような結果に関連したリソースに割り当てしてくれる。

これらのことから、Activity や Fragment における非同期なロードを実行する場合は Loader の助けを借りて、もう AsyncTask を使うべきではありません。

続きを読む >>


AsyncTaskLoader の使い方 (1/8) 〜 Thread と AsyncTask

もう非同期処理では、あたりまえなのだろうが、まとめておかないとすぐに忘れる。

AsyncTaskLoader___Android_Developers

AsyncTaskLoader | Android Developers


目次

1. Thread と AsyncTask
2. AsyncTaskLoader の利点
3. LoaderManager の利用
4. よくある間違いと回避法
5. 基本的な Loader の実装
6. いろいろな Loader の使用例
7. データベースと CursorLoader
8. Loader の弱点を克服する


1. Thread と AsyncTask

まずは、非同期処理ではおなじみのThread。

めんどくさいことがいくつかある。

  • メインスレッドに結果を戻す必要がある。
  • 手動でキャンセルしなければならない。
  • スレッドをプールしたければ独自実装しなければならない。

でそこらに対応した AsyncTask。以下の特徴をもつ。

  • 結果をメインスレッドに送ってくれる。
  • スケジュールは管理されている。
  • キャンセル処理も可能。
  • 進行状況が取得できる。

続きを読む >>