zoukankan      html  css  js  c++  java
  • Intent的属性介绍

    在Android系统的设计中有四大组件:Activity,Service,BroadcastReceiver,ContentProvider。Intent可以被应用于ContentProvider之外的其它三种组件之间互连互通,共享和交互数据(甚至跨越了进程的限制),很大程度的解决了组件之间的耦合性,使组件更加独立。因此有人把Intent定为第五大组件。从字面上来讲,Intent是“意图,意愿”的意思,它服务于其它的组件,因此其自身的设计具有很大的通用性。本文主要介绍,完成这些强大功能背后的属性

      1.ComponentName

      Intent 主要被分为两类:显性(Explicit Intent)和隐性(Implicit Intent)。ComponentName主要被用于显性Intent中,它明确了需要被启用的组件的名称(如果是同一个程序内的其它组件,则只需具体的ComponentName;如果在不同的应用中需要添加PackageName),这样系统就会将该Intent发送到对应的组件中;

      2.Category

      Category是种类的意思,它将Intent从大的范围上进行了分类,相比具体的ComponentName更加宽范。Android系统中已经预设了一些范围或功能。当然同样是可以自定义的。下表展示了一些比较常用的属性介绍:

    Category名字 描述
    CATEGORY_DEFAULT 默认的Category值。使用隐式Intent方式启动组件时,Category是必须的。如果没有指定系统在启动组件的时候会默认加上CATEGORY_DEFAULT,因此在组件注册的地方的Intent过滤器中也要加上CATEGORY_DEFAULT才能使用
    CATEGORY_HOME 表明这个应用是操作系统启动后,启动的第一个应用。一般是Launcher所需要使用的
    CATEGORY_LAUNCHER 这个属性值表示组件可以被放到启动列表(Launcher)中来进行启动(一般为应用程序入口)

              

                    

      3.Action

      Action是动作的意思,表明要做什么事。Android系统同样定义了很多Action,通过这些Action可以启动一些系统级的组件(功能)来做一些事情。同样Action可以进行自定义,启用我们启用的组件。下表展示了一系统的比较常用的Action

    Action名字 描述
    ACTION_MAIN 表明由此组件开始新的任务,一般为就用的入口Activity使用
    ACTION_CALL 启用一个拨打电话的Activity
    ACTION_ANSWER 组件处理呼入的电话

      

      4.Data

      Data即表示需要Intent携带的数据,它可以将数据从源组件带到目标组件中,供目标组件的使用。它一般采用了类似scheme://uri的表达方式,同时指这了数据的MIME类型

      5.Extras

      Extras 是对上面Data数据的补充,与Data不同的是它采用key-value的方式保存数据的。它的内部是能过一个Bundle对象来保证数据的准确性和守整性的

      6.Flags

      Flags主要运用在Activity组件的启动上,其主要作用与Activity的LauncherMode有关。它规定了系统如何启用一个Activity组件以及Activity所属的TASK

    上面的这些属情的定义保证的Intent的核心功能和其不可或缺的地位:待激活组件筛选(ComponentName,Category,Action);共享数据(Data,Extras)以及更加具体化的Activity组件的启动模式相关的(Flags)

  • 相关阅读:
    操作系统_3:linux教程列表
    MongoEngine 查询语法
    Spark_1:教程索引
    软件需求十步走之阅读笔记03
    软件需求十步走之阅读笔记02
    软件需求十步走之阅读笔记01
    暑期学习四
    暑期学习三
    暑期学习二
    暑期学习一
  • 原文地址:https://www.cnblogs.com/pillowzhou/p/4714887.html
Copyright © 2011-2022 走看看