zoukankan      html  css  js  c++  java
  • 安卓应用程序的生命周期

    (1)前台(Foreground)进程
    与用户当前正在做的事情密切相关,不同的应用程序组件能够通过不同的方法使它的宿主进程移到前台。当下面任何一个条件满足时,都可以考虑将进程移到前台。
    进程正在屏幕的最前端运行一个与用户交互的Activity(它的onResume()方法被调用);
    进程有一个正在运行的BroadcastReceiver(它的BroadcastReceiver.onReceive()方法正在执行);
    进程有一个Service,并且在Service的某个方法(Service.onCreate()、Service.onStart()或者Service.onDestroy())内有正在执行的代码。
    (2)可见(Visible)进程
    它有一个可以被用户从屏幕上看到的Activity,但不在前台——其onPause()方法被调用。例如:如果前台的Activity是一个对话框,以前的Activity隐藏在对话框之后,就可能出现这种进程。这样的进程很重要,一般不允许被杀死,除非为了保证前台进程的运行不得不这样做。

    (3)服务(Service)进程
    有一个已经用startService() 方法启动的Service,虽然这些进程用户无法直接看到,但它们做的事情却是用户所关心的(例如:后台MP3回放或后台网络数据的上传/下载)。因此,系统将一直运行这些进程,除非内存不足以维持所有的前台进程和可见进程。
    (4)后台(Background)进程
    拥有一个当前用户看不到的Activity(它的onStop()方法被调用),这些进程对用户体验没有直接的影响。如果它们正确执行了Activity生命周期,系统可以在任意时刻杀死进程来回收内存,并提供给前面3种类型的进程使用。系统中通常有很多这样的进程在运行,因此要将这些进程保存在LRU 列表中,以确保当内存不足时用户最近看到的进程最后一个被杀死。
    (5)空(Empty)进程
    不包含任何处于活动状态的应用程序组件。保留这种进程的唯一原因是,当下次应用程序的某个组件需要运行时,不需要重新创建进程,这样可以提高启动速度。
    以上所说的“进程”是从系统运行的角度考虑的,各种不同的进程可以理解成Android的各种组件的不同状态机(state machine)。如果从应用程序的代码以及运行情况考虑,可以关注Android的各种组件相对应的生命周期。

  • 相关阅读:
    Ubuntu 8.04安设nVidia新版表现驱动
    特性化设置你的linux环境
    Ubuntu 8.04 去失踪文泉驿的点阵字形的方法
    Fedora Nightlife项目 扶助较劲争论机的空闲
    Ubuntu显卡驱动不精确,进入黑屏的处置装备
    Linux中翻开带flash网页主动封锁的处理办法
    Firefox 3 Alpha 5
    Ubuntu 8.04无法正常关机成就处置惩罚
    Redhat Enterprise Linux 5.2 公布了
    KOffice 1.6.3
  • 原文地址:https://www.cnblogs.com/running-mydream/p/4446013.html
Copyright © 2011-2022 走看看