проблема в понимании, как использовать базу данных SQLite - PullRequest
1 голос
/ 15 июня 2011

У меня есть приложение, в котором я храню некоторые данные в базе данных SQLIte. И я пытаюсь открыть мою БД только один раз при запуске моего приложения, а затем использовать тот же экземпляр моей БД.

Идея состоит не в том, чтобы открывать мою БД во всех нужных мне видах деятельности.

Одним из решений, которое я получил, было следующее: создать класс, расширяющий Application, а затем открыть там БД:

Вот как выглядит код:

public class MyApplication extends Application{

private static DBAdapter db;

public void onCreate()
{

    db=new DBAdapter(getApplicationContext());
    db.createDatabase();
    db.openDataBase();
}

public static DBAdapter getDatabaseAdapter()
{
    return db;
}

}

Таким образом, в каждом действии моего приложения, где мне нужно подключиться к моему DB, я делаю что-то вроде:

MyApplication myApplication = (MyApplication) this.getApplication();
DBAdapter db= myApplication.getDatabaseAdapter();

Но я не совсем уверен, что мой DB открывается только в начале моего приложения ... или открывается каждый раз, когда я делаю это:

  MyApplication myApplication = (MyApplication) this.getApplication();

Или, если у кого-то есть лучшее решение, пожалуйста, скажите мне :). Спасибо,

Ответы [ 2 ]

1 голос
/ 15 июня 2011

Он будет открыт только один раз, потому что вы вызываете его в onCreate методе класса Application, который будет вызываться при запуске приложения до того, как будут созданы любые другие объекты приложения.Вы можете посмотреть на один из моих проектов здесь ссылка .

Надеюсь, что эта помощь.

РЕДАКТИРОВАТЬ: О классе приложения: Android автоматически создаст экземпляр этого класса и сделает его доступным для всего вашего приложения.Вы можете получить к нему доступ из любого контекста, используя Context.getApplicationContext ().Таким образом, будет только один экземпляр приложения, который будет использоваться совместно.

0 голосов
/ 15 июня 2011

Альтернативой вашему подходу может быть создание одного класса SingleTon, в котором вы можете сохранить ссылку на ваше открытое соединение db, чтобы его можно было использовать повторно.

Поскольку для любого приложения для Android существует только один экземпляр класса applcation, распределенный по всем действиям, поэтому ваша база данных открывается только при запуске приложения для Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...