有人可以解释SQLiteOpenHelper getType

And*_*rew 1 database android android-contentprovider

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

我不完全理解它.我不确定,即使我有一个例子,这里应该传达的是什么.如何确定不同数据表的MIME类型?有人能给我一个很好的解释吗?

教程

Com*_*are 6

我正在尝试在我的应用程序中实现一个数据库.

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

我正在关注编写自己的ContentProvider的教程,但我对SQLiteOpenHelper :: getType感到困惑.

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

究竟应该在这里传达什么

嗯......一个MIME类型.

如何确定不同数据表的MIME类型?

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

有人能给我一个很好的解释吗?

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

Android遵循相同的模型.

例如,您可以创建ACTION_VIEW Intent一个Uri代表联系人的代码ContactsContract ContentProvider.但是,如果Android无法确定MIME类型,则无法使用Intent启动活动.Android需要问一下ContentProvider,"哟,dawg,U给我一个MIME类型'这个Uri?".然后,使用action(ACTION_VIEW)和MIME类型,Android可以找到可以处理请求的匹配活动.