こんばんは。
アプリ開発が大詰めだった為、ブログ更新を怠っていました。
Adsenseの審査が通ったからって、更新止まったらだめですね・・・。
以前、非同期処理の記事を書いていましたが、今日は、CursorLoaderについてです。
CursorLoaderは、文字通りCursorをLoadします。
AsyncTaskLoader<Cursor>をextendsしているので、以前書いたAsyncTaskLoaderと実装方法はあまり変わりません。Cursorを扱う場合は、CursorLoaderを使用した方がいいと思います。
onCreateLoaderとonLoadFinished、onLoaderResetをOverrideします。
あとは、Loaderを実行します。
destoryも忘れずに。
ちょっとはまったのが、Activityで、getLoaderManager()がコンパイルエラーとなったことです。
サポートライブラリのandroid.support.v7.app.AppCompatActivityを使用する場合は、全てサポートライブラリで統一して、Activityでは、getSupportLoaderManager()を使用するようにしました。
CursorLoaderを使用していると、ContentProviderのinsertなどで、以下のようにしておけば、変更があったときに、onLoadFinishedが自動で呼ばれます。
ただし、onLoadFinishedで、Cursorをcloseしてしまうと、変更があっても、onLoadFinishedは呼ばれなくなります。
0 件のコメント:
コメントを投稿