我正在扩展SQLiteOpenHelper
课程。我的构造函数是
public MyDatabaseHelper(Context context) {
super(
context, // ???
"MyDatabase.db", // Database name
null, // Cursor factory
1 // database version
);
}
SQLiteOpenHelper构造函数对上下文信息做了什么?
对于我的应用程序,无论程序状态(上下文)如何,构造函数的行为都相同。我可以在没有任何未来问题的情况下传入null吗?
答案 0 :(得分:6)
如果提供空值,它将创建内存数据库,但您需要为数据库名称参数提供null,以便正确处理。
这在上下文的构造函数文档中有记录
用于打开或创建数据库的数据库名称的上下文 file,或内存数据库为null
此外,如果您查看SQLiteHelper类本身的源代码,您将看到它使用mName值来决定是否使用mContext。在线查看源代码: