Я не пытался делать то, что вы там описали, но, вероятно, это можно было бы сделать и сработать - с несколькими оговорками.Во-первых, внешнее хранилище (SD-карта) небезопасно, поэтому любое другое приложение или пользователь может читать / записывать на него.Во-вторых, как вы заметили, когда он отключен, БД исчезает.
Из-за этих недостатков вам, вероятно, лучше попробовать использовать внутреннюю базу данных хранилища (по умолчанию), которая небольшая и, возможно, содержит указатели на внешние данные (например, изображения или файлы), которые сами по себеможет находиться во внешнем хранилище (и иметь заполнители или другую обработку, когда внешнее хранилище недоступно).
Тем не менее, если вы хотите попробовать его, вам лучше переопределить метод getDatabasePath для Context , например, для вашего собственного Application object, а затем передайте , что , в обычный SQLiteOpenHelper .Тогда вам не придется беспокоиться о фабрике курсоров (которая является необязательной, , поскольку источник подтверждает - поэтому просто передайте ноль, если вместо этого вы хотите пойти по этому маршруту).