找了几篇文章,全都写得云里雾里的,还是自己记录下吧。
使用Intent的时候可以调用intent.setData(Uri data),例如准备去打电话的,data的值应该是一个以"tel:"开头并在其后附加号码的URI,
这时候你去startActivity,它就会去跟你去启动的Activity中intent-filter的<data android:mimeType="xxxxxxx" />做匹配。而这个xxxxxxx对应的就是ContentProvider获取type的Uri,也就是说它会用这个xxxxxxx(uri)去对应的ContentProvider获取到type的类型,获取类型调用方法getType,然后再跟Intent传入的uri做类型匹配,看类型是否正确,正确了才能启动这个Activity。