Ответ 1
Как только у вас есть Контекст и узнайте имя базы данных, используйте:
context.deleteDatabase(DATABASE_NAME);
Когда эта строка запускается, база данных должна быть удалена.
Я хотел бы удалить файл базы данных из Android file system
программно? Можно ли запустить оболочку script launch adb
, которая по очереди запускает оболочку script в пространстве Android для удаления базы данных? Могу ли я сделать это из тестового примера JUnit
(с вызовом system()
)?
Как удалить всю базу данных в Android? Мне нужно, чтобы все это исчезло, поэтому я могу протестировать создание базы данных. Я могу отказаться от таблиц, но этого недостаточно. Это находится в эмуляторе, а не на телефоне.
Как только у вас есть Контекст и узнайте имя базы данных, используйте:
context.deleteDatabase(DATABASE_NAME);
Когда эта строка запускается, база данных должна быть удалена.
Легко просто ввести из оболочки:
adb shell
cd /data/data
cd <your.application.java.package>
cd databases
su rm <your db name>.db
Статический метод SQLiteDatabase.deleteDatabase(File file) был добавлен в API 16. Если вы хотите писать приложения, поддерживающие старые устройства, как вы это делаете?
Я попытался: file.delete();
но он запутывает SQLiteOpenHelper.
Спасибо.
NEVER MIND! Позже я понял, что вы используете Контекст.deleteDatabase(). Контекст отлично работает и удаляет журнал. Работает для меня.
Кроме того, я обнаружил, что мне нужно было вызвать SQLiteOpenHelp.close(), прежде чем делать удаление, чтобы затем использовать LoaderManager для его создания.
Try:
this.deleteDatabase(path);
или
context.deleteDatabase(path);
Также из Eclipse вы можете использовать DDMS, что делает его очень легким.
Просто убедитесь, что ваш эмулятор запущен, а затем переключитесь на перспективу DDMS в Eclipse. У вас будет полный доступ к файловому проводнику, который позволит вам входить и легко удалять всю базу данных.
context.deleteDatabase("database_name.db");
Это может помочь кому-то. Вы должны упомянуть расширение, иначе оно не будет работать.
context.deleteDatabase(DATABASE_NAME); удалит базу данных только в том случае, если все соединения закрыты. Если вы поддерживаете экземпляр singleton для обработки вашего помощника базы данных - легко закрыть открытое соединение.
Если база данных используется в нескольких местах, создавая экземпляр напрямую, файл deleteDatabase + killProcess выполнит эту работу, даже если некоторые соединения открыты. Это можно использовать, если в сценарии приложения нет проблем при перезапуске приложения.
Удалить старую базу данных при удалении приложения.
Установка android: allowBackup = "false" в теге приложения в AndroidManifest.xml устранила проблему. Кажется, по какой-то странной причине ОС Android восстанавливала из резервной копии каждый раз, когда я развертывал приложение.
Вы можете создать файл объекта текущего пути к базе данных, а затем удалить его, как мы удаляем файл из папки
File data = Environment.getDataDirectory();
String currentDBPath = "/data/com.example.demo/databases/" + DATABASE_NAME;
File currentDB = new File(data, currentDBPath);
boolean deleted = SQLiteDatabase.deleteDatabase(currentDB);
Я использовал метод удаления базы данных Android и база данных успешно удалена
public bool DeleteDatabase()
{
var dbName = "TenderDb.db";
var documentDirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var path = Path.Combine(documentDirectoryPath, dbName);
return Android.Database.Sqlite.SQLiteDatabase.DeleteDatabase(new Java.IO.File(path));
}
Я использовал следующее для "форматирования" базы данных на устройстве после того, как изменил структуру базы данных в активах. Я просто раскомментирую строку в MainActivity, когда хочу, чтобы база данных снова читалась из ресурсов. Это приведет к сбросу значений и структуры базы данных устройства в соответствии с занятой базой данных в папке активов.
//database initialization. Uncomment to clear the database
//deleteDatabase("questions.db");
Далее я реализую кнопку, которая будет запускать deleteDatabase, чтобы пользователь мог сбросить свой прогресс в игре.
В Диспетчере приложений вы можете удалить все приложение с данными. Или просто данные сами. Это включает в себя базу данных.
Перейдите к настройкам.. Вы можете перейти в меню настроек либо в меню ваших приложений или, на большинстве телефонов, потянув уведомление выдвижной ящик и нажав кнопку там.
Выберите подменю Службы. На некоторых телефонах это меню будет иметь немного другое имя, например Application Manager.
Проведите вправо до Список всех приложений. Игнорировать списки запущенных и загружаемых приложений. Вам нужен список всех приложений.
Выберите приложение, которое вы хотите отключить. Появится экран свойств с кнопку для принудительного останова в левом верхнем углу и другую для Отключите или удалите обновления в верхней правой части.
Удалить данные.
Вы можете перейти к своему эмулятору > Настройки > Приложение > . затем щелкните приложение, из которого вы хотите удалить базу данных, и нажмите > Очистить данные.,