2

重複の可能性:
Android ライブラリに SQLite DB を作成する

私はJavaライブラリを作成していますが、ライブラリがデータなどを保存するために、実行時にSQLiteデータベースを開くか作成する必要があります...

私が見たすべての Android 用 SQLite API には、アクティビティなどを使用せずにライブラリを実行しているため、アクティビティから DB を作成するためのコンテキストが必要です... SQLite DB を取得するにはどうすればよいですか?

問題は、私のライブラリには public クラスが 1 つしかないことです。私のライブラリの内部では、私的な使用のために SQLite DB を作成する必要があります。したがって、ユーザーにコンテキストで送信するように依頼することはできません。それともできますか?

Googleがライブラリでどのようにそれを行うかを見てください。Android 用の分析ライブラリを使用しているときに、分析用のアプリ ID 以外のものを渡すことはありません。また、彼らのドキュメントでは、「ページビュー、イベント、e コマースのヒットはSQLite データベースに保存され、Google アナリティクス サーバーに定期的にディスパッチされます。

4

1 に答える 1

3

SQLite DBを入手するにはどうすればよいですか?

ライブラリの利用者にを提供してもらいますContext

したがって、コンテキストで送信するようにユーザーに要求することはできません。または私はできますか?

はい、できます。android.*お気づきの方もいらっしゃると思いますが、パッケージ内の多くのクラスにはContext、パラメータとしてをとるメソッドがあります。あなたも、パラメータとしてをとるメソッドを持つことができContextます。

Context次に、ライブラリの使用者が適切なものを渡すことができるように、ライブラリの使用目的とそれに触れるオブジェクトの寿命を文書化する必要があります。たとえば、ライブラリがを保持する静的データメンバーを作成する場合、SQLiteOpenHelper実際にはライブラリのコンシューマーに、、などではなく、を提供してもらい、ガベージApplicationコレクションActivityの問題が発生しないようにする必要があります。 。ServiceContext

于 2012-07-04T20:01:43.083 に答える