Chinaunix首页 | 论坛 | 博客
  • 博客访问: 280384
  • 博文数量: 28
  • 博客积分: 11
  • 博客等级: 民兵
  • 技术积分: 895
  • 用 户 组: 普通用户
  • 注册时间: 2012-11-19 19:50
个人简介

不畏浮云遮望眼,只缘身在最高层

文章分类

全部博文(28)

文章存档

2014年(1)

2013年(27)

分类: Android平台

2013-04-08 20:29:25

 

点击(此处)折叠或打开

android的Activity的生命周期主要有三个,分别是:
完整生命周期:从调用onCreate() 方法到最终调用onDestory()方法称为完整生命周期
可见生命周期:从调用onStart()方法开始,到调用onStop()方法为止称为可见生命周期
前景生命周期:从调用onResume()方法开始,到调用onPause()方法为止称为前景生命周期

如下图所示:展示了Activity在不同状态间转换的状态图和转换条件



                                         Activity生命周期图:

测试程序如下:

  1. package com.example.activitydemo;

  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.view.Menu;

  5. public class MainActivity extends Activity {
  6.     @Override
  7.     protected void onCreate(Bundle savedInstanceState) {
  8.         super.onCreate(savedInstanceState);
  9.         setContentView(R.layout.activity_main);
  10.         System.out.println("onCreate");
  11.         
  12.     }
  13.     protected void onDestory()//在Activity被销毁前调用的最后一个方法
  14.     {
  15.         super.onDestroy();
  16.         System.out.println("onDestory");
  17.     }
  18.     @Override
  19.     protected void onPause() //当系统要调用其他的Activity时调用
  20.     {
  21.         super.onPause();
  22.         System.out.println("onPause");
  23.     }
  24.     @Override
  25.     protected void onRestart() //当Activity从停止状态重新启动时调用
  26.     {
  27.         super.onRestart();
  28.         System.out.println("onRestart");
  29.     }
  30.     @Override
  31.     protected void onResume() //当Activity将要与用户交互时调用此方法
  32.     {
  33.         super.onResume();
  34.         System.out.println("onResume");
  35.     }
  36.     @Override
  37.     protected void onStart() //该方法在onCreate()方法之后被调用,或者在Activity从stop状态转换为Active状态时被调用
  38.     {
  39.         super.onStart();
  40.         System.out.println("onStart");
  41.     }
  42.     @Override
  43.     protected void onStop() //当其他Activity恢复并遮盖此Activity,导致此activity对用户不可见时调用
  44.     {
  45.         super.onStop();
  46.         System.out.println("onStop");
  47.     }
  48.     @Override
  49.     public boolean onCreateOptionsMenu(Menu menu) {
  50.         // Inflate the menu; this adds items to the action bar if it is present.
  51.         getMenuInflater().inflate(R.menu.main, menu);
  52.         return true;
  53.     }

  54. }


1.打开activity时候,LogCat输出:

2.按下Home键,打开其他应用程序时候,LogCat输出:

说明此时的应用程序并没有被销毁!

3.重新启动该应用程序时候,LogCat输出:


进程的生命周期

Android根据其重要性在内存不足的时候移去重要性最低的进程。重要性由高到低为:

  1. 前台进程
  2. 可见进程
  3. 服务进程
  4. 后台进程
  5. 空进程


阅读(2560) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~