Ошибка базы данных Android в openOrCreate () - PullRequest
0 голосов
/ 04 мая 2011

У меня есть два класса, оба не являются активными, один для выполнения операций с базой данных, а другой - для пересылки значений в качестве класса-посредника. Класс DataBase, вызывающий метод openOrCreateDataBase из 3-го класса Connectivity.

    contextWrapper.openOrCreateDatabase(sqlDBName, MODE_PRIVATE, null);

но здесь, поскольку этот класс не является активностью, я не могу передать параметр ContextWrapper. Есть ли другой способ открыть базу данных. Я пытался,

    sqLiteDatabase = SQLiteDatabase.openDatabase(path, factory, flags);
    sqLiteDatabase = SQLiteDatabase.openOrCreateDatabase(file, factory);

Но они не работают для меня.

спасибо

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Вы не можете создать базу данных без контекста. Это одна из вещей, для которой существует контекст: она позволяет вам получить доступ к общим настройкам, базе данных и т. Д.

0 голосов
/ 23 октября 2012

Да, есть способ.В конструкторе класса оболочки db вы можете добавить ContextWrapper в качестве параметра и вызвать его следующим образом:

public ctor(ContextWrapper wrapper) {
        SQLiteDatabase db = wrapper.openOrCreateDatabase("myDB", wrapper.MODE_PRIVATE, null);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...