Как работает SQLiteOpenHelper Context

У меня есть приложение с двумя действиями.

Один из них перечисляет несколько значений, а другой добавляет новые значения в БД.

У меня есть класс, который распространяется от SQLiteOpenHelper и управляет соединениями БД, запросами и т. Д.

Теперь я понимаю, что в конструкторе SQLiteOpenHelper вам необходимо передать контекст, который используется для определения того, нужно ли ему создавать новую БД или открывать существующую.

Но если у меня есть один экземпляр класса SQLiteOpenHelper в каждом действии, тогда контекст будет другим.

Есть ли способ избежать этого?

Благодарю.

Solutions Collecting From Web of "Как работает SQLiteOpenHelper Context"

Передайте в контексте приложения (.getApplication ()) вместо Activity. Таким образом, оба экземпляра будут обращаться к db, используя тот же контекст.

Context может быть другим, но не создавать разные БД. Конструктор SQLiteOpenHelper имеет параметр name , это имя файла DB. Если это существует, это не создаст независимо от того, прошел ли Context .

Фактически, созданная база данных связана с пакетом приложений контекста . Поэтому неважно, прошел ли вы контекст приложения или контекст активности.

Context.java

 /** * Open a new private SQLiteDatabase associated with this Context's * application package. Create the database file if it doesn't exist. ... ... */ public abstract SQLiteDatabase openOrCreateDatabase(String name, int mode, CursorFactory factory);