Android平台Activity

以下内容中有相当部分摘自网络,加上了一些我个人的见解,主要是为了记录自己的学习历程。

  1. Activity可以理解为一个应用程序。在 Android 中,所有的应用程序“生来就是平等的”,所以不光 Android 的核心程序,任何一个应用都可以发出一个请求(intent )来启动另外一个应用(activity)。Android 的这种设计非常有利于“程序部件”的重用。
  2. Activity的生命周期是由系统控制而非程序自身直接控制。这点和Java的垃圾回收机制很像。(现在进程也可以回收了!)
  3. 一个即将被系统关闭的程序是系统在内存不足(low memory)时,根据“重要性”选出来的“牺牲品”。 各种进程按照重要性从高到低排列如下:
  •  
    • 前台进程。这样的进程拥有一个在屏幕上显示并和用户交互的 activity 或者它的一个IntentReciver 正在运行。这样的程序重要性最高,只有在系统内存非常低,万不得已时才会被结束。
    • 可见进程。在屏幕上显示,但是不在前台的程序。比如一个前台进程以对话框的形式显示在该进程前面。这样的进程也很重要,它们只有在系统没有足够内存运行所有前台进程时,才会被结束。
    • 服务进程。这样的进程在后台持续运行,比如后台音乐播放、后台数据上传下载等。这样的进程对用户来说一般很有用,所以只有当系统没有足够内存来维持所有的前台和可见进程时,才会被结束。
    • 后台进程。这样的程序拥有一个用户不可见的 activity。这样的程序在系统内存不足时,按照 LRU (LRU 是Least Recently Used的缩写,即最近最少使用页面置换算法,是 为虚拟页式存储管理服务的。)的顺序被结束。
    • 空进程。这样的进程不包含任何活动的程序部件。系统可能随时关闭这类进程。
  1. Activity在生命周期中可能有如下状态:
  •  
    • Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
    • Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
    • Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stop ed 状态。
    • Destroyed Activity 被系统杀死回收或者没有被启动时处于 Destroyed 状态。
  1. Activity的生命周期如图:

 

 0_12803210018q71.gif

 

在Android 2.2平台上我们发现

首次运行程序发生如下事件(通过对相应事件处理打印log得知):

onCreate、onStart、onResume

按HOME键会发生如下事件:

onPause、onStop

按返回键会发生如下事件:

onPause、onStop、onDestroy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值