我认为最干净的方法是为所有 db 文件使用一个唯一的 ContentProvider 。
您应该围绕数据库选择构建URI 。
例如 :content://com.your.package/a_db_file/something/things/5
然后在实现你的 ContentProvider 的时候,解析 Uri 得到a_db_file
段,打开对应的 db 文件,然后根据剩下的段做需要的工作。
也许你需要一个像getCorrectDb(String a_db_file)
. 在此方法中,您应该正确调用与所需 db 文件正确匹配的sqlLiteOpenHelper 。
另请查看UriMatcher,它可能对您有用。:)
最后你应该有类似的东西:
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
// TODO : Parse uri to get a_db_file string.
SQLiteDatabase database = getCorrectDb(a_db_file);
// TODO : get cursor from db according to other segments of uri.
return cursor.
}