• Android之Activating Components


    Activating Components

      4种组件类中的3种-activities、services、broadcast-被一个称为intent的异步消息激活。Intents让单独的组件在运行时绑定在一起(你可以把他们看作从其它组件请求行为的消息),不管那个组件属不属于你的应用程序。

      intent被Intent对象创建,用来定义一个消息以启动一个指定组件或者是指定类型的组件-一个Intent可以是显示的或隐式的。

      对activities和services来讲,一个intent定义了执行的行为(例如,查看或发送某个事情),可以指定要操作的URI(组件启动需要知道的事情)。例如,一个intent可以发送一个请求给activity来展现一个图片蔌者打开一个web页面。在某些情况下,你可以启动一个activity来接收结果,在这种情况下,请求的activity也返回结果在一个intent中(例如,你可发出一个intent来让用户选择一个用户联系人,然后返回给你-这个返回的intent包含一个指定选择联系人的URI)。

      对broadcast receivers,intent仅简单的定义被广播的声明(例如,一个设备电量低的广播只包括一个已经的行为字符串代表“battery is low”)。

      其它的组件类型,content provider,不是被intent激活。相反,它在被一个来自ContentResolver的请求盯上的时被激活。ContentResolver操作所有和content provider直接的事务,而实现事务的组件不需要和ContenResolver通信。这使得在content provider和component请求者之间留了一个虚拟的层(出于全安)。

      有单独的方法来激活各种类型的组件:

      1、你可以开始一个activity通过传递一个Intent给startActivity()或startActivityForResult()(当前需要activity 返回返回一个结果)。

      2、你可以开户一个service(或者给当前运行service新指示)通过传递一个Intent给startService(),或者你可以绑定到service通过传递一个Intent给bindService()。

      3、你可以初始化一个broadcast通过传递一个Intent给方法例如sendBroadcast()、sendOrderedBroadcast()或者sendStickyBroadcast()。

      4、你可以实现查询一个content provider通过调用ContentreSolver的query()函数。

  • 相关阅读:
    MFC工作者线程
    【转】水煮TCPMP
    TCPMP的ARM编译器问题
    奇怪的链接警告-ole32.lib
    Stack overflow错误的一个原因
    旋转wince的桌面的函数
    ASNI to Unicode 转换与系统语言的问题
    WinCE 驱动开发问题精华集锦
    【转】OAL之系统时钟
    【转】蓝牙技术及其系统原理
  • 原文地址:https://www.cnblogs.com/tekkaman/p/2073706.html
Copyright © 2020-2023  润新知