Android Intent

>>Intent介绍:

    Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动 作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的 交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。

>>Intent作用:

    Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成android各个组件之间的通讯。比如说调用 startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的 BroadcaseReceiver, 再或者由startService()/bindservice()来启动一个后台的service.所以可以看出来,intent主要是用来启动其他的 activity 或者service,所以可以将intent理解成activity之间的粘合剂。

>>Inten启动组件的方法:

    Intent可以启动一个Activity,也可以启动一个Service,还可以发起一个广播Broadcasts。具体方法如下:


Android Intent_第1张图片

>>Intent重要属性

    动作(Action)

    数据(Data)

    分类(Category),

    类型(Type)

    组件(Compent)

    扩展信(Extra)

    ------------------------------------------------------------------------------------------------------------------------------

    1.Action属性:

            

                           

                     

                     

                 

        

            TargetActivity在其中声明了,即目标action,如果我们需要做一个跳转的动作,就需要在Intent中指定目标的action,如下

            Intent intent =new Intent("com.scott.intent.action.TARGET");

           startActivity(intent); 

            Intent也内含了很多默认的action

            public static final  String  ACTION_MAIN  =  "android.intent.action.MAIN";

            public static final String ACTION_VIEW = "android.intent.action.VIEW";

            public static final String ACTION_WEB_SEARCH = "android.intent.action.WEB_SEARCH"; 

            public static final String ACTION_CALL = "android.intent.action.CALL";

        2.data和extras,即执行动作要操作的数据和传递到目标的附加信息:

   

Android Intent_第2张图片

        3.category,要执行动作的目标所具有的特质或行为归类

             例如:在我们的应用主界面Activity通常有如下配置:

              

             代表该目标Activity是该应用所在task中的初始Activity并且出现在系统launcher的应用列表中。


Android Intent_第3张图片

注意:着重强调一下android.intent.category.DEFAULT的作用, 如果通过隐式‘启动’,必须要在Androidmainfast.xml意图过滤中添加,否则匹配不到!

4.type:要执行动作的目标Activity所能处理的MIME数据类型

5.component,目标组件的包或类名称

     在使用component进行匹配时,一般采用以下几种形式:

    1 intent.setComponent(new ComponentName(getApplicationContext(), TargetActivity.class));

    2 intent.setComponent(new     ComponentName(getApplicationContext(), "com.scott.intent.TargetActivity"));

    3 intent.setComponent(new     ComponentName("com.scott.other", "com.scott.other.TargetActivity"));

     其中,前两种是用于匹配同一包内的目标,第三种是用于匹配其他包内的目标。

 【注意】:如果我们在Intent中指定了component属性,系统将不会再对action、data/type、category进行匹配。

常用:

    

Android Intent_第4张图片

你可能感兴趣的:(Android Intent)