activity的启动分为:显示启动和隐式启动
显示启动:明确的指定一个activity进行启动 隐式启动:只有合适的activity才可以启动
什么是合适? 当标签内的内容与Intent的设置相同时
intent.setAction("htl");intent.addCategory("")intent.setData(Uri.parse("https://www.baidu.com"));有三种内容
actioncategory:name=”android.intent.category.DEFAULT”时, intent不需要添加date 代码片段:manifest <intent-filter> <action android:name="htl"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="cc"/> <data android:mimeType="text/fds"/> </intent-filter>标签可以配置一下内容: 1. android:scheme 用于指定数据的协议部分。如:https 2. android:host 用于指定数据的主机名部分。如:www.baidu.com 3. android:port 用于指定数据的端口部分,一般紧随在主机名之后。 4. android:path 用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容。 5. android:mimeType 用于指定可以处理的数据类型,允许使用通配符的方式进行指定。
一般只需要指定scheme的内容就可以了。 当还需要添加mineType(传递的数据类型)内容时,如果
intent.setData(Uri.parse("cc:10086"));intent.setType("text/fds");启动失败,无论setDate()还是setType()在前,后面的都会清理掉前面的设置,所以,正确的启动方式是
intent.setDataAndType(Uri.parse("cc:10086"),"text/fds");当等待启动的activity有多个action,多个data时,只需要同时满足一条action和data就可以正常启动
新闻热点
疑难解答