好的,所以我刚刚了解了android中的SQLite API。 所有教程都讨论了创建一个扩展SQLIteOpenHelper的辅助类。根据我的理解,有一个构造函数创建数据库,并且有一个onCreate回调,用于在第一次创建数据库时创建所有表。好的,好的。
我的怀疑是: 假设,我从一个活动/类创建一个数据库。我的帮助器类叫做DatabaseHelper。所以,如果我想从该创建者类本身访问数据库,那么没问题。我只是使用我将创建的DatabaseHelper实例,然后使用它来访问和处理数据库。
但是,我将如何在其他需要访问数据库的活动中处理同一个数据库。我的疑问是,因为在这个类中我将不得不创建一个新的DatabaseHelper对象,不会再次通过超级构造函数调用和onCreate回调。这不是一个问题吗? 它对数据库有什么影响。
我基本上无法理解如何在我的应用程序中创建一次数据库,然后在应用程序的任何位置创建数据库。
任何帮助表示赞赏。良好网站的链接将非常有用。
答案 0 :(得分:1)
根据我的理解,有一个构造函数可以创建数据库
没有。在您第一次致电getReadableDatabase()
或getWriteableDatabase()
之前,我们不会创建数据库。
我怀疑的是,因为在本课程中我必须创建一个新的DatabaseHelper对象
如果您将使用数据库拥有多个组件和线程,请使用所有内容都使用的单个SQLiteOpenHelper
。
再次通过超级构造函数调用和onCreate回调
不,因为数据库已经存在。只有在onCreate()
或getReadableDatabase()
时数据库不存在时才会调用getWriteableDatabase()
。