美文网首页
0.2 应用组件:Activity和Service

0.2 应用组件:Activity和Service

作者: GuoYiheng | 来源:发表于2017-01-10 00:29 被阅读0次

    应用组件

    应用组件是 Android 应用的基本构建基块.每个组件都是一个不同的点,系统可以通过它进入您的应用. 并非所有组件都是用户的实际入口点,有些组件相互依赖,但每个组件都以独立实体形式存在,并发挥特定作用
    — 每个组件都是唯一的构建基块,有助于定义应用的总体行为.

    共有四种不同的应用组件类型:

    1.Activities

    2.Services

    3.Content providers

    4.Broadcast receivers.

    每种类型都服务于不同的目的,并且具有定义组件的创建和销毁方式的不同生命周期.


    Activity

    Activity 是用户与应用进行交互的进入点,代表用户界面的一个单一屏幕.例如,电子邮件应用可能具有一个显示新电子邮件列表的
    Activity、一个用于撰写电子邮件的 Activity 以及一个用于阅读电子邮件的
    Activity. 尽管这些 Activity 通过协作在电子邮件应用中形成了一种紧密结合的用户体验,但每一个
    Activity 都独立于其他 Activity 而存在.因此,其他应用可以启动其中任何一个 Activity(如果电子邮件应用允许).
    例如,相机应用可以启动电子邮件应用内用于撰写新电子邮件的 Activity,以便用户共享图片.

    此外,系统与应用之间某些非常关键交互也是由Activity来完成:

    • 保持追踪用户当前使用的activity,以确保该activity所在进程不被系统杀死.

    • 获取用户进入当前进程之前所在的进程并赋予较高的优先级,从而使得当用户停止当前进程后可以返回之前的进程.

    • 帮助应用在进程被杀死之前保存当前状态

    • 给应用提供途径来实现用户流动,并给系统提供途径来协调这些流动.

    Activity 作为 Activity的子类实现,可以在Activity 开发者指南中了解有关它的更多详情.

    Service

    服务是保持应用在后台运行的进入点,用于执行长时间运行的操作或为远程进程执行作业.
    服务不提供用户界面. 例如,当用户位于其他应用中时,服务可能在后台播放音乐或者通过网络获取数据,但不会阻断用户与
    Activity 的交互. 诸如 Activity等其他组件可以启动服务,让其运行或与其绑定以便与其进行交互.

    从语义上讲,服务分为两种形式:

    1.启动服务

    服务启动后,系统会保持服务在后台持续运行,直到其工作结束.通常用来在后台同步数据或者在用户离开应用后继续播放音乐.后台同步数据和播放音乐代表了系统处理启动服务的两种类型:

    • 大多数服务,类似后台同步数据,是在用户没有觉察的情况下执行的.对于这类服务,当系统需要给用户更关心的内容提供内存时可能会先杀死这类服务的进程,过后再重新启动它们.

    • 像后台音乐播放这类服务,用户自然是非常清楚的知道它们正在运行的,系统会尽量保持它们的进程不被杀死,以避免给用户带来糟糕的体验.

    2.绑定服务

    当系统或其他应用需要使用某个服务时需要绑定该服务,通常通过该服务提供的接口来实现绑定.如果用户关心的进程A绑定了进程B的服务,那么系统也会尽量避免进程B被杀死.我们系统的高级概念都是采用了服务作为构建基块.诸如动态壁纸,通知监听,屏保,输入法等等系统核心功能都是通过应用实现的服务,在需要运行时系统进程来绑定它们.

    服务作为 Service 的子类实现,可以在Service开发者指南中了解有关它的更多详情.

    相关文章

      网友评论

          本文标题:0.2 应用组件:Activity和Service

          本文链接:https://www.haomeiwen.com/subject/yxqkbttx.html