Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 649
#1

Записать базу на карту памяти - Программирование Android

26.11.2013, 16:31. Просмотров 689. Ответов 4
Метки нет (Все метки)

Как правильно прописать путь к базе данных? То есть при запуске создать файл базы данных на карте памяти и в дальнейшем с ним работать.
Как учитывать, что есть устройства с картой памяти, а со большой встроенной памятью?

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class DBHelper extends SQLiteOpenHelper { 
         
        public DBHelper(Context context) {        
              super(context, "/sdcard/"+DATABASE_NAME, null, 1);               
              String newFolder = "/newFolder"; 
              String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); 
              File myNewFolder = new File(extStorageDirectory + newFolder); 
              myNewFolder.mkdir(); 
              SQLiteDatabase.openOrCreateDatabase("/sdcard/newFolder/"+DATABASE_NAME,null); 
        } 
 
        @Override 
        public void onCreate(SQLiteDatabase db) { 
          db.execSQL("create table mytable (" 
              + "id integer primary key autoincrement," 
              + "email text" + ");"); 
        } 
 
        @Override 
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
 
        } 
      }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2013, 16:31     Записать базу на карту памяти
Посмотрите здесь:
Android Как позволить установку приложения на карту памяти?
Android При переносе приложения на карту памяти где хранятся SharedPreferences, SQLite базы и тп ?
Не отображает карту Android
Android Перенос приложения на SD карту
Маркер на google карту Android
Установка/перенос приложения на SD карту Android
Android Не могу сохранить файл на карту
Скачать файл из сети на SD карту Android
Android Не получается сохранить файл на SD карту
Android Необходимо сделать из изображения карту
Android Вывести метку на карту google
Карту упаковать в установочник apk Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.11.2013, 20:09     Записать базу на карту памяти #2
Запись базы на карту:
Вместо
"/sdcard/"+DATABASE_NAME
пишите
Java
1
2
3
Environment.getExternalStorageDirectory()
                + File.separator + "/DataBase/" + File.separator
                + DATABASE_NAME
Проверка на СД-карту

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
String state = Environment.getExternalStorageState();
 
if (Environment.MEDIA_MOUNTED.equals(state)) {
    // Мы можем читать и писать на неё
    mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
    // Только читать
    mExternalStorageAvailable = true;
    mExternalStorageWriteable = false;
} else {
    // Не можем ничего делать. Возможно карты нет
    mExternalStorageAvailable = mExternalStorageWriteable = false;
}
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 649
26.11.2013, 23:37  [ТС]     Записать базу на карту памяти #3
Спасибо, всё работает. А как узнать и имеет ли смысл узнавать есть ли карта памяти в устройстве?
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.11.2013, 12:29     Записать базу на карту памяти #4
Цитата Сообщение от Digetix Посмотреть сообщение
А как узнать и имеет ли смысл узнавать есть ли карта памяти в устройстве?
Хэх, ну это уже от Вашей задачи зависит. Я обычно создаю базу в кэше приложения. Куда пользователь установил приложение - там и будет база. Обычно БД не занимает много места (если Вы, конечно, не собираетесь хранить там кучу тяжёловесных blob).
Создание базы в кэше приложения - просто:
Java
1
super(context, DATABASE_NAME, null, 1);
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 649
27.11.2013, 12:59  [ТС]     Записать базу на карту памяти #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
ну это уже от Вашей задачи зависит
В общем у меня такая задача, есть сервис parse.com, там есть моя база данных (таблица с 2000 строк, 5 столбцов, только текст). Я хочу при установке и при первом запуске "закачать" базу в устройство и при последующих запусках использовать локальную базу. При каждом запуске буду сверять версии баз данных и если нужно обновлять её. Так вот и прошу от вас совета, как лучше поступить и где разместить базу?
Yandex
Объявления
27.11.2013, 12:59     Записать базу на карту памяти
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru