WEB开发网
开发学院手机开发Android 开发 Android创建数据库的时候就将数据库保存到SDcard中... 阅读

Android创建数据库的时候就将数据库保存到SDcard中

 2011-01-11 06:56:50 来源:WEB开发网   
核心提示:我们知道数据库创建的时候默认保存到系统data/data/项目名 下面了,有没有一种方法保存到自己指定的SDCard上的文件夹里面呢?答案是可以的,Android创建数据库的时候就将数据库保存到SDcard中,我们只需要找到SQLiteOpenHelper这个类,了解一下就不难发现其保存的路径是固定了的,那么我们只需要

我们知道数据库创建的时候默认保存到系统data/data/项目名 下面了,有没有一种方法保存到自己指定的SDCard上的文件夹里面呢?答案是可以的。我们只需要找到SQLiteOpenHelper这个类,了解一下就不难发现其保存的路径是固定了的,那么我们只需要改动一下getWritableDatabase(),即写入的时候的路径:

public synchronized SQLiteDatabase getWritableDatabase() {
	if (mDatabase != null && mDatabase.isOpen() && !mDatabase.isReadOnly()) {
		return mDatabase; // The database is already open for business
	}
	if (mIsInitializing) {
		throw new IllegalStateException("getWritableDatabase called recursively");
	}
	// If we have a read-only database open, someone could be using it
	// (though they shouldn't), which would cause a lock to be held on
	// the file, and our attempts to open the database read-write would
	// fail waiting for the file lock. To prevent that, we acquire the
	// lock on the read-only database, which shuts out other users.
	boolean success = false;
	SQLiteDatabase db = null;
	if (mDatabase != null) mDatabase.lock();
	try {
		mIsInitializing = true;
		if (mName == null) {
			db = SQLiteDatabase.create(null);
		} else {
			db = mContext.openOrCreateDatabase(mName, 0, mFactory);
		}
		int version = db.getVersion();
		if (version != mNewVersion) {
			db.beginTransaction();
			try {
				if (version == 0) {
					onCreate(db);
				} else {
					onUpgrade(db, version, mNewVersion);
				}
				db.setVersion(mNewVersion);
				db.setTransactionSuccessful();
			} finally {
				db.endTransaction();
			}
		}
		onOpen(db);
		success = true;
		return db;
	} finally {
		mIsInitializing = false;
		if (success) {
			if (mDatabase != null) {
				try { mDatabase.close(); } catch (Exception e) { }
				mDatabase.unlock();
			}
			mDatabase = db;
		} else {
			if (mDatabase != null) mDatabase.unlock();
			if (db != null) db.close();
		}
	}
}

注意标志的红色的部分,这是创建数据库的地方。

1 2 3 4  下一页

Tags:Android 数据库 SDcard

编辑录入:coldstar [复制链接] [打 印]
赞助商链接