ContentProvider 的 getType(Uri uri)
2014-08-25 17:42
295 查看
在manifest文件中activity会有这样的属性
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/person" />
<data android:mimeType="vnd.android.cursor.dir/contact" />
</intent-filter>
ContentProvider 的 getType(Uri uri) 方法,返回的就是其中对应的mimetype值,匹配manifest的话,才能启动activity。
这个方法什么时候调用呢?
startActivity(intent)
Intent.java
public String resolveTypeIfNeeded(ContentResolver resolver) {
if (mComponent != null) {
return mType;
}
return resolveType(resolver);
}
1、startActivity(intent)的intent 时隐式的(即没有直接设置类名)
2、并且没有设置type
3、并且设置了uri(如调用了setData(uri))
那么就会调用到
ContentResolver.getType(mData)也就调用到了 ContentProvider 的 getType(Uri uri)。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android.cursor.dir/person" />
<data android:mimeType="vnd.android.cursor.dir/contact" />
</intent-filter>
ContentProvider 的 getType(Uri uri) 方法,返回的就是其中对应的mimetype值,匹配manifest的话,才能启动activity。
这个方法什么时候调用呢?
startActivity(intent)
Instrumentation.execStartActivity()
Intent.resolveTypeIfNeeded()
Intent.java
public String resolveTypeIfNeeded(ContentResolver resolver) {
if (mComponent != null) {
return mType;
}
return resolveType(resolver);
}
public String resolveType(ContentResolver resolver) { if (mType != null) { return mType; } if (mData != null) { if ("content".equals(mData.getScheme())) { return resolver.getType(mData); } } return null; }如果
1、startActivity(intent)的intent 时隐式的(即没有直接设置类名)
2、并且没有设置type
3、并且设置了uri(如调用了setData(uri))
那么就会调用到
ContentResolver.getType(mData)也就调用到了 ContentProvider 的 getType(Uri uri)。
相关文章推荐
- ContentProvider中getType(Uri uri)用法及理解
- 对ContentProvider中getType(Uri uri)和android.intent.category.DEFAULT的理解
- 对ContentProvider中getType(Uri uri)和android.intent.category.DEFAULT的理解
- 对ContentProvider中getType(Uri uri)和android.intent.category.DEFAULT的理解
- android ContentProvider中getType(Uri uri)的理解
- 对ContentProvider中getType(Uri uri)和android.intent.category.DEFAULT的理解 .
- 对ContentProvider中getType(Uri uri)和android.intent.category.DEFAULT的理解
- android ContentProvider中getType(Uri uri)的理解
- android ContentProvider中getType(Uri uri)的理解
- ContentProvider之MIME类型与getType()
- 对ContentProvider中getType方法的一点理解
- 对ContentProvider中getType方法的一点理解
- 对ContentProvider中getType方法的一点理解
- ContentProvider中gettype() 和MIME类型的理解
- ContentProvider中gettype() 和MIME类型的理解
- ContentProvider中gettype() 和MIME类型的理解
- 对ContentProvider中getType方法的一点理解
- 是否需要覆盖ContentProvider的getType方法?
- 是否需要覆盖ContentProvider的getType方法?
- ContentProvider中gettype() 和MIME类型的理解