gpt4 book ai didi

Android 多个内容提供者 (DLC)

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:22 25 4
gpt4 key购买 nike

我希望将额外的内容作为额外的数据库添加到我的应用程序中。我是否应该将它们放在 apk 和内容提供程序中,以便它们可以直接从 google play 更新,或者就像直接将新的 db 文件下载到应用程序中一样。

content-provider/apk 方法的问题是它们都必须在 android list 中声明,而且我可能有多个数据库甚至数百个,因此我的 list 中需要 100 多个内容提供程序声明,即使用户可能只有几个,甚至一个都没有。

除非有一种方法可以动态生成 list ?或者加载 list 之外的内容提供者?

谢谢

最佳答案

我认为最简洁的方法是使用一个独特的 ContentProvider对于您所有的数据库文件。

您应该构建您的 URI围绕数据库选择。

例如:content://com.your.package/a_db_file/something/things/5

然后在实现你的ContentProvider的时候,解析Uri得到a_db_file段,打开对应的db文件,然后根据剩下的段做需要的工作。

也许您需要像 getCorrectDb(String a_db_file) 这样的方法。在此方法中,您应该正确调用 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.

}

关于Android 多个内容提供者 (DLC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13154356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com