- Activity启动方法
- 显式启动
- 隐式启动
- action
- category
- data
- 判断隐式启动是否成功
startActivity(Intent(this, SecondActivity::class.java))隐式启动
隐式启动需要设置intent-filter,通过action、category、data过滤信息。
action- 需要在AndroidManifest.xml文件中配置,可以配置多个
- intent中的action值与清单文件的action值相同表示匹配成功
val intent = Intent()
intent.setAction("com.example.activitydemo.MY_ACTION")
startActivity(intent)
category
- 与action类似,可以在清单文件中配置多个
- intent中的action是必须添加的,但是cateogry可以不用添加
val intent = Intent()
intent.setAction("com.example.activitydemo.MY_ACTION")
intent.addCategory("com.example.activitydemo.MY_CATEGORY")
startActivity(intent)
data
data由mimeType和URL组成
mimeType数据类型:image/jpeg video/*等 URL数据格式::// : /[ | | ] 如: content://com.example.project:200/folder/subfolder/etc http://www.baidu.com:80/search/info
- scheme:url的模式,如http、file等
- host:url主机名,如www.baidu.com
- port:url端口,如80
- path:表示完整路径
- pathPrefix:表示路径前缀
- pathPattern:表示完整路径,包含通配符
定义URL
val intent = Intent()
intent.setAction("com.example.activitydemo.MY_ACTION")
intent.setData(Uri.parse("http://www.baidu.com"))
startActivity(intent)
定义mimeType
val intent = Intent()
intent.setAction("com.example.activitydemo.MY_ACTION")
intent.setType("image/*")
startActivity(intent)
定义完整URL
val intent = Intent()
intent.setAction("com.example.activitydemo.MY_ACTION")
intent.setDataAndType(Uri.parse("hello://www.123456.com"), "world/*")
startActivity(intent)
判断隐式启动是否成功
val intent = Intent()
intent.setAction("com.example.activitydemo.MY_ACTION")
intent.setDataAndType(Uri.parse("hello://www.123456.com"), "world/*")
val componentName: ComponentName? = intent.resolveActivity(packageManager)
if (componentName != null) {
startActivity(intent)
} else {
toast("隐式启动失败")
}



