android - 有人可以解释 SQLiteOpenHelper getType

标签 android database android-contentprovider

我正在尝试在我的应用程序中实现一个数据库。我正在学习有关编写自己的 ContentProvider 的教程,但我对 SQLiteOpenHelper::getType 感到困惑。我们应该编写它,本质上,编写一个开关,该开关返回与我们正在处理的数据类型相对应的 MIME 类型。

我不是很懂。我不确定,即使我有一个例子,这里应该准确传达什么。如何确定不同数据表的 MIME 类型?有人可以给我一个很好的解释吗?

tutorial

最佳答案

I'm trying to implement a database in my application.

这与 ContentProvider 无关。 ContentProvider 不需要使用数据库;数据库不需要被 ContentProvider 隐藏。

I'm following a tutorial about writing my own ContentProvider, but I'm confused about SQLiteOpenHelper::getType.

SQLiteOpenHelper 上没有getType() 方法.我假设您指的是 ContentProvider 上的 getType()

what is precisely supposed to be conveyed here

嗯...一个 MIME 类型。

How do I determine the MIME type of my different tables of data?

对于数据库,您可能会发明自己的 MIME 类型。请记住,ContentProvider 不仅用于表格样式的结构——它也可以用于返回文件。在这种情况下,您将尝试使用适合相关文件的 MIME 类型。

Could someone give me a good explanation of this?

您可能正在 Web 浏览器中查看此网页。当您单击链接或任何将您带到此处的内容时,您的 Web 浏览器会向 Web 服务器发出 HTTP 请求,提供 /questions/3559053/could-someone-explain-sqliteopenhelper-gettype 的 URI。 StackOverflow Web 服务器返回页面的内容,以及内容本身的 MIME 类型。后一部分很重要,特别是对于这个 URI,因为没有文件扩展名。如果没有 MIME 类型,Web 浏览器将不知道如何处理 HTTP 请求的结果。

Android 遵循相同的模型。

例如,您可以为代表 ContactsContract 中的联系人的 Uri 创建一个 ACTION_VIEW Intent 内容提供者。但是,如果 Android 无法确定 MIME 类型,则您无法使用 Intent 启动 Activity 。 Android 需要询问 ContentProvider,“哟,老兄,你给我这个 Uri 的 MIME 类型吗?”。然后,借助操作 (ACTION_VIEW) 和 MIME 类型,Android 可以找到可以处理请求的匹配 Activity 。

关于android - 有人可以解释 SQLiteOpenHelper getType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3559053/

相关文章:

android - 哪个线程运行 ContentProvider?

java - Android 美国各州数据提供商

java - ProviderTestCase 子类的 setUp() 方法中的 NPE

java - 在 Android 上的 Java 中每 60 秒重复一个方法

android - OnKeyListener 不工作

php - 动态创建数据库模型类

MySQL 性能 - 选择一行,我应该使用限制 1 吗?

Android - 当使用总线事件调用时,IntentService 在 UI 线程上运行

Android 模拟器无法正常工作

php - 基于浏览器的RPG : Using sessions to store player data