私は初心者のAndroidプログラマーで、最近、ローカルSQLiteデータベースを作成し、SQLiteDatabase.rawQueryを使用してカーソルを返すことでデータベースにアクセスする方法を示すチュートリアルに従いました。データベースにアクセスするためのより良い方法であると思われるCursorLoaderを使用するようにアプリを変更したいと思います。私の問題は、CursorLoaderコンストラクターがURIが指定されることを期待していることです。「file:/// [path todb]」と入力するだけですか?少し厄介なようです。
2 に答える
URI を受け入れるカーソル ローダーの背後にある理由は、未加工のデータベースではなく、contentProvider をクエリすることを想定しているためです。
そのため、CursorLoader クラスを直接使用できるように、データベースを内部的に使用するコンテンツ プロバイダーを作成することをお勧めします。
コンテンツ プロバイダーを使用する利点は、データをより適切にカプセル化し、Android から直接多くの API を簡単に活用できることです。
コンテンツ プロバイダーの作成方法に関するガイドを次に示します。
http://developer.android.com/guide/topics/providers/content-provider-creating.html
http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
ContentProvider を作成しないことを選択した場合は、AsyncTaskLoaderまたはカーソル ローダーを直接拡張して、必要な方法でデータをクエリできます。
CommonsWare のLoaderExライブラリを見てください。Loader
ローカルでを使用できるSQLiteDatabase
ため、わざわざ独自の を作成する必要はありませんContentProvider
。