zoukankan      html  css  js  c++  java
  • 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()函数。

  • 相关阅读:
    web十二讲,CSS样式
    web第十一讲,div与span
    web第十讲,CSS基础
    git 版本回退后再恢复
    git 变更远程仓库及在本地的别名
    使用FastClick插件,无法监听双击事件
    声明式编程的没落
    gradle 很棒
    评 PowerShell
    VB 的一些歧义(不断更新)
  • 原文地址:https://www.cnblogs.com/tekkaman/p/2073706.html
Copyright © 2011-2022 走看看