SQLiteOpenHelper类用上下文参数做什么?

我正在扩展SQLiteOpenHelper类。 我的构造函数

 public MyDatabaseHelper(Context context) { super( context, // ??? "MyDatabase.db", // Database name null, // Cursor factory 1 // database version ); } 

SQLiteOpenHelper构造函数是如何处理上下文信息的?

对于我的应用程序,无论程序状态(上下文)如何,构造函数的行为都是一样的。 我可以在没有任何未来问题的情况下将null传递给上下文吗?

Solutions Collecting From Web of "SQLiteOpenHelper类用上下文参数做什么?"

如果你提供一个空值,它将会创build一个内存数据库,但是你也需要为数据库名称参数提供null,所以它的处理是正确的。

这在上下文的构造器文档中有logging

用于打开或创build数据库文件的数据库名称的上下文,或者用于内存数据库的空值

此外,如果您查看SQLiteHelper类本身的源代码,则会看到它使用mName值来决定是否使用mContext。 在线查看源代码:

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.4_r1.2/android/database/sqlite/SQLiteOpenHelper.java#SQLiteOpenHelper.0mContext