开发者社区> 问答> 正文

一条关于安卓开发Intent的问题

显式Intent和隐式Intent分别在什么时候用?隐式Intent里的setAction(·····)里的参数是不是只能是Action_MAIN,Action_VIEW等参数,而不能是自己随便弄的一个字符串second,fantastic等字符串?隐式Intent是不是只能启动系统Activity

展开
收起
爵霸 2016-05-30 10:10:35 1865 0
1 条回答
写回答
取消 提交回答
  • 显式Intent:通过指定Intent组件名称来实现的,它一般用在知道目标组件名称的前提下,一般是在相同的应用程序内部实现的。一个Android应用程序中需要多个屏幕,即是多个Activity类,并且在这些Activity之间进行切换通过Intent机制来实现的。在同一个应用程序中切换Activity时,通常都知道要启动的Activity具体是哪一个,因此常用显式的Intent来实现的。
    隐式Intent:通过Intent Filter来实现的,它一般用在没有明确指出目标组件名称的前提下,一般是用于在不同应用程序之间。需要AndroidManifest.xml中增加Activity的声明,并设置对应的Intent Filter过滤和Action,才能被Android的应用程序框架所匹配。

        对于显示Intent,Android不需要再去做解析,因为目标组件很明确。Android需要解析的是隐式Intent,通过解析,将Intent映射给可以处理该Intent的Activity,Service等。Intent的解析机制主要是通过查找已经注册在AndroidManifest.xml中的所有IntentFilter以及其中定义的Intent,最终找到匹配的Intent。
    
    2019-07-17 19:19:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载