问题描述
- 一条关于安卓开发Intent的问题
-
显式Intent和隐式Intent分别在什么时候用?隐式Intent里的setAction(·····)里的参数是不是只能是Action_MAIN,Action_VIEW等参数,而不能是自己随便弄的一个字符串second,fantastic等字符串?隐式Intent是不是只能启动系统Activity?求大神帮忙解答
解决方案
隐式意图是不指定跳转的activity或者receiver,用action开过滤,先示意图直接指定!隐式意图可以用来调用系统的功能,也可以自己写过滤,自己写action。
解决方案二:
显式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。
解决方案三:
http://www.cnblogs.com/windwithlife/archive/2009/07/17/1525385.html
解决方案四:
显式一般用在一个应用中,因为名称你都知道,所以直接显示调用就行。
隐式一般是用在一个应用需要调用其他应用帮它服务,此时只能用隐式调用。
当然隐式也会用在一个应用中,比方说,我们自己在写一些例子时,你不可能每个例子都去创个工程,一般是建一个工程,里面包含所有的例子。然后通过列表的形式展现出来,这个列表,我总不可能一个个去设置intent,直接用隐式,就可以得到有哪些activity,然后以列表形式呈现,这样,代码就简单了
时间: 2024-11-01 06:52:23