0
이전 기사에서 SQLiteDatabse의 단일 인스턴스를 만든 다음 내 App 전체에서 참조하는 방법이 있습니다. 내 데이터베이스가 어디에 있는지 알려주지 못합니다. 데이터베이스가 SDCard에 쓰여졌 기 때문에 어느 데이터베이스에 올바르게 사용해야하는지 알려줄 수있는 방법이 있어야합니다. 여기에 코드를 다음과 같습니다 :Android SQLite 데이터베이스 도우미 인스턴스
public class DatabaseManager {
private int mOpenCounter;
private static DatabaseManager instance;
private static SQLiteOpenHelper mDatabaseHelper;
private SQLiteDatabase mDatabase;
public static synchronized void initializeInstance(SQLiteOpenHelper helper) {
if (instance == null) {
instance = new DatabaseManager();
mDatabaseHelper = helper;
}
}
public static synchronized DatabaseManager getInstance() {
if (instance == null) {
throw new IllegalStateException(DatabaseManager.class.getSimpleName() +
" is not initialized, call initializeInstance(..) method first.");
}
return instance;
}
public synchronized SQLiteDatabase openDatabase() {
mOpenCounter++;
if(mOpenCounter == 1) {
// Opening new database
mDatabase = mDatabaseHelper.getWritableDatabase();
}
return mDatabase;
}
public synchronized void closeDatabase() {
mOpenCounter--;
if(mOpenCounter == 0) {
// Closing database
mDatabase.close();
}
}
}
내 실제 데이터베이스는 사용자가 명시 적으로 데이터베이스의 경로를 언급 할 필요가 없습니다 FooBase.db
static File directoryPath = new File(Environment.getExternalStorageDirectory().toString() + "/MyApp/database");
는 있지만,이 경우에는 데이터베이스가 될 것입니다 감사 적어도 13MB 이상이 필요했기 때문에 다른 파일과 함께 SDCard에 파일을 작성하여 충분한 공간이 있는지 확인하고자했습니다. 앱. 그래서 그걸로, 나는 여전히 위의 –
을 추가로 지정해야하며, 여전히 어떤 데이터베이스를 열 것인지를 알려주는 방법이 있어야합니다. 네가 많은 분이라면? –
Ok ... 이제는 다른 답변으로 곧 답변을 업데이트하겠습니다. – SMR