项目中常年用的都是显示的intent,都忘了咋用这个隐式了。
忘记过去就意味着背叛
所以我只好记下来,写到CSDN里
想要了解隐式启动,需要对intent-filter有一定的了解,intent-filter内部又有三种标签action,category,data.
intent-filter其实就是一个 跳转过滤器,过滤其中的三种标签
1). action 动作过滤
一条intent-filter元素至少应该包含一个action。
敲的代码多了,大家会发现,跳转到一些系统的页面时都会让传这个action,比如拍摄,拨打电话,发送短信等等,这些系统的界面都是,我们这写第三方调用时,都是用的隐式启动,其实这也就是隐式启动的应用范围,一般在不同的应用程序之间调用.
android:name=”“,字符串匹配
2). category 类别过滤
只有当Intent请求中所有的Category与组件中某一个IntentFilter的category完全匹配时,才会让该 Intent请求通过测试,IntentFilter中多余的声明并不会导致匹配失败。其实也就是说一个Intent请求中可以传递多个Category,并且需要全部匹配,Intent请求中action只能传递一个,你多写,只是覆盖.
听着有点绕,需要你分清楚,(Intent请求中的Category)和(IntentFilter的category)
android:name=”“,字符串匹配
3). data 数据过滤
更确切的支出,可以接收的数据类型
android:host=”” 指定一个有效的主机名(例如, com.google )。
android:mimeType=”” 允许你设定组件能处理的数据类型。例如,type android:value=”vnd.android.cursor.dir/*能匹配任何 Android 游标
android:path=”“用于指定主机名和端口之后的部分(例如, /transport/boats/ )。
android:port=”“用于指定数据的端口号。
android:scheme=”“用于指定数据的协议部分(例如, content 或 http )。
android:ssp=”” 用于匹配uri属性-“ssp”代表”scheme-specific part”,意思代表东西都在schemme之后出现,例如URI “https://example.com/foo/bar“可以分成scheme部分”https”和scheme-specific part部分”//example.com/foo/bar”。
scheme://host:port/path