Android developer guide状態:内部的に使用されるデータベースに対してContentProviderを実装するオーバーヘッドを避けることはできますか?
あなたは、あなたが他のアプリケーションとデータを共有 する予定がない場合は、独自のプロバイダを開発する必要はありません。
だから、私はSQLiteのDBアプリで完全にローカルに使用している場合、その後のContentProviderは(回避定型的なコードの書き込みの多くを持つ)必要ではないことを理解されているが、私はいただきました!「アンドロイド」を取得didntはこのDBをバックグラウンドで照会する方法は?
ローダーは非同期にデータをロードすることが容易になります:(の少ないオーバーヘッドとして可能な限りの車輪を再発明して)
このタスクはdocsにsatetedようLoadersは、のためにあるかであると思われるかもしれませんあるアクティビティまたは フラグメント。
が、このタスクを実行することができるLoader
のないサブクラスではありません、最も近いサブクラス - CursorLoaderはContentResolver
に連結できるdesginedされます。だから、私は何かを逃している?それを行うLoaderのサードパーティの実装はありますか、それとも別のアプローチがありますか?
ありがとうございます!
だからあなたは何をあなたは、バックグラウンドでデータベースを照会する必要がある場合、今使用していて、そのタスクのローダサブクラスイマイチ右の結論になってきて以来、活動のライフサイクルと同期に対処するための手間をたくないですか? –
@OfekRon:それはアプリによって大きく異なります。あなたは、単にフル 'Loader'契約を尊重しない、独自の' DatabaseLoader'を作成したい場合にも、個々のプロジェクトのために、あなたはそうするために歓迎されています。私は完全契約を尊重することができず、図書館のユーザーを誤解させたくないため、図書館を中止しました。しかし、ローダーのほかに、スレッドや保持されているフラグメント、スレッド、 'onRetainNonConfigurationInstance()'やPOJOデータベースマネージャーなどを使用することができます。実際には、アプリケーションの性質、UIの全体的なアーキテクチャーなどに依存します。 – CommonsWare