Rus*_*ler 3 android android-manifest android-contentprovider
我希望将额外的内容添加到我的应用程序作为额外的数据库.我应该将它们放在apks和内容提供商中,这样它们可以直接从谷歌播放更新,或者直接下载到应用程序中的新数据库文件.
我的内容提供者/ apk方法的问题是,它们都必须在android清单中声明,我可能有多个数据库甚至数百个,所以在我的清单中需要100个内容提供者声明,即使用户可能只有几个甚至没有.
除非有办法我可以动态生成清单?或者在清单之外加载内容提供商?
谢谢
我认为最简单的方法是为所有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.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2136 次 |
| 最近记录: |