2

可能重复:
在 Android 库中创建 SQLite DB

我正在制作一个 Java 库,我需要在运行时打开或创建一个 SQLite 数据库,以便我的库存储数据等...

我见过的所有适用于 Android 的 SQLite API 都需要一个上下文,从一个活动到创建一个数据库,因为我正在做一个库,没有活动等......我怎样才能获得一个 SQLite 数据库?

问题是我的图书馆只有一个公共类,在我的图书馆内部,我需要创建一个供私人使用的 SQLite DB。所以我不能只要求用户在上下文中发送。或者我可以吗?

看看谷歌在他们的图书馆里是如何做到的?在我使用 Android 的分析库时,除了用于分析的应用程序 ID 之外,我不会传递任何其他内容。在他们的文档中,您可以阅读:“页面浏览量、事件和电子商务点击存储在SQLite 数据库中,并定期发送到 Google Analytics 服务器

4

1 回答 1

3

如何获得 SQLite 数据库?

让图书馆的使用者为您提供Context.

所以我不能只要求用户在上下文中发送。或者我可以吗?

是的你可以。如果您注意到,android.*包中的许多类都有将 aContext作为参数的方法。您也可以拥有将 aContext作为参数的方法。

现在,您将需要记录您的预期用途Context以及将接触它的对象的寿命,以便您的库的使用者可以传入一个适当的对象。例如,如果您的库将创建一个包含 a 的静态数据成员SQLiteOpenHelper,您将希望库的使用者实际为您提供一个Application,而不是Activity,Service或其他Context,这样您就不会遇到垃圾收集问题.

于 2012-07-04T20:01:43.083 回答