我在getType()方法中放入一个永远不会被打印的日志。我正在使用记事本示例代码。请解释Java doc评论的第1行。从getType()返回null也正常工作。 getType()方法的目的是什么?
/**
* This is called when a client calls {@link android.content.ContentResolver#getType(Uri)}.
* Returns the MIME data type of the URI given as a parameter.
*
* @param uri The URI whose MIME type is desired.
* @return The MIME type of the URI.
* @throws IllegalArgumentException if the incoming URI pattern is invalid.
*/
@Override
public String getType(Uri uri)
{
Log.d("Suparna", "******getType()");
/*switch(uriMatcher.match(uri))
{
// ---get all books---
case BOOK_DETAILS:
return Book.Book_Details.CONTENT_TYPE;
// ---get a particular book---
case BOOK_DETAILS_ID:
return Book.Book_Details.CONTENT_ITEM_TYPE;
default:
throw new IllegalArgumentException("Unsupported URI: " + uri);
}*/
return null;
}
答案 0 :(得分:35)
getType(Uri uri)
通常只会在调用ContentResolver#getType(Uri uri)
后调用。应用程序(其他第三方应用程序,如果已导出ContentProvider
或您自己的应用程序)使用它来检索给定内容URL的MIME类型。如果您的应用不关心数据的MIME类型,那么只需使用方法return null
即可。
答案 1 :(得分:3)
当您允许ContentProvider
与其他第三方应用程序进行交互时,此getType()
ContentProvider
方法主要用于此方法。
Android系统使用此MIME类型来查找哪些应用程序可以处理它。