0

データベースへの直接データアクセスを使用するアプリケーションがあります。他のアプリケーションのためにそれ以外に公開するものは何もありません。CommonsWareがSOのどこかで述べているように、「公開するものがない場合は、ContentProviderを使用しないでください」。次に、データベースに格納しているテーブルの1つからいくつかの文字列を表示するウィジェットを追加します。ContentProviderパターンへの直接アクセスコードをリファクタリングする必要がありますか?ウィジェットからデータベースへの直接アクセスを使用する方法はありますか?1つのアプリケーションでContentProviderとデータベースへの直接アクセスの両方を行う方法はありますか?

4

1 に答える 1

1

ここで、データベースに保存されているテーブルの 1 つからいくつかの文字列を表示するウィジェットを追加したいと考えています。

「ウィジェット」とは、実際には「アプリ ウィジェット」を意味すると仮定します。

ダイレクト アクセス コードを ContentProvider パターンにリファクタリングする必要がありますか?

アプリ ウィジェットを作成しているからといって、これを行う必要はありません。

ウィジェットからデータベースに直接アクセスする方法はありますか?

もちろん、アプリの他の場所で使用しているのと同じメカニズムを使用します。

1 つのアプリケーションで ContentProvider とデータベースへの直接アクセスの両方を持つ方法はありますか?

はい。ただし、両方の場合で同じオブジェクトを使用していることを確認するために少し注意する必要があるSQLiteDatabaseため、スレッドの問題に遭遇することはありません。

于 2011-10-14T21:19:33.703 に答える