`
fdyang
  • 浏览: 79708 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

理解 Activity 的生命周期

 
阅读更多

把Activity看成一个页面,在Android系统中,Activity 被作为 Activity 栈进行管理.
- 当前活动的Activity 处于栈顶.
- 非活动的Activity 压在栈中, 处于等待状况

 

一个Activity的状态有如下4种:
- 活动. (处于栈顶, 有焦点,可见)
- 暂停. (失去焦点,但可见)
- 停止. (失去焦点,不可见)
- 销毁. (被系统或进程结束)

 

一个Activity的方法有如下7个:
- .onCreate()    创建
- .onStart()      启动
- .onRestart()    重启.
- .onResume()  恢复
- .onPause()     暂停
- .onStop()      停止
- .onDestroy()   销毁

 

Activity 的生命周期的 Cases
a. Activiy1 启动
   - Code:

super.onCreate()

 
   - 运行顺序: ( Activity1 : onCreate() -> onStart() ->onResume() )

 

b. 从Activity1 跳转到 Activity2, 然后关闭Activity1.
   - Code: 
      

Intent intent = new Intent();  //新建一个Intent对象.
intent.setClass(Activity1.this, Activity2.class);  //设定Intent要启动的类. 
startActivity(intent); //启动一个新的Activity
Activity1.this.finish();  //关闭当前的Activity.

     - 运行顺序: (Activity1: onPause() )->  ( Activity2: onCreate() ->onStart() ->onResume()) -> (Activity1:onStop() ->onDestroy())

 

c. 关闭Activity1, 退出程序 , 或者按 "BACK" 键.
    - Code: 
      

Activity1.this.finish(); 

 
     -运行顺序: Activity1: onPause()->onStop()->onDestroy();

 

d. 按"HOME"键, 然后再运行程序.
     - 运行顺序: Activity1: onPause()->onStop()  => 运行其他程序 => 再运行本程序: Activity1: onRestart()->onStart()-)>onResume()

 

e. 刷新Activity1
    - Code:

  

public class LifeCycleActivity extends Activity {
    /** Called when the activity is first created. */
	private static final String TAG = "MainActivity"; 
    
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
        Log.i(TAG, "onCreate()"); 
         
        Button button = (Button) this.findViewById(R.id.button); 
        button.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
              //Intent intent = new Intent(LifeCycleActivity.this, Activity2.class); 
              //startActivity(intent); 
            	reload();
            } 
        }); 
    } 
 
    @Override 
    protected void onDestroy() { 
        Log.i(TAG, "onDestroy()"); 
        super.onDestroy(); 
    } 
 
    @Override 
    protected void onPause() { 
         Log.i(TAG, "onPause()"); 
        super.onPause(); 
    } 
 
    @Override 
    protected void onRestart() { 
         Log.i(TAG, "onRestart()"); 
        super.onRestart(); 
    } 
 
    @Override 
    protected void onResume() { 
         Log.i(TAG, "onResume()"); 
        super.onResume(); 
    } 
 
    @Override 
    protected void onStart() { 
         Log.i(TAG, "onStart()"); 
        super.onStart(); 
    } 
 
    @Override 
    protected void onStop() { 
         Log.i(TAG, "onStop()"); 
        super.onStop(); 
    } 
     
    public void reload(){
    	Intent intent = getIntent();
    	this.finish();
    	startActivity(intent);
    }
} 

 -运行顺序: onCreate()->onStart()->onResume() ==> 点按纽后 onPause()->onCreate()->onStart()->onResume()->onStop()->onDestroy()

 

更多的可以参考:

http://www.ibm.com/developerworks/cn/opensource/os-cn-android-actvt/

分享到:
评论

相关推荐

    深入理解Activity生命周期

    深入理解Activity生命周期示例代码.

    Activity生命周期完美呈现

    Activity生命周期的完美呈现,通过一个简单的项目,可以比较好地理解Activity的整个生命周期,对于初学者有一定的帮助!

    Activity生命周期(一)

    基本的Activity生命周期过程,有助于理解Activity生命周期的运行,适合初学者。

    对安卓activity生命周期的理解

    对安卓activity生命周期的理解,详见每一个logcat里

    Android课程第一次实验报告_Andorid应用程序Activity生命周期.docx

     对于应用开发者来说,理解不同的应用组件(特别是Activity、Service、Intent Receiver)对应用进程的生命周期的影响,这是非常重要的。如果没有正确地使用这些组件,将会导致当应用正在处理重要的工作时,进程却被...

    深入Activity的生命周期

    本PDF主要是介绍Activity生命周期,目的是为了更的多的android朋友初学者或者不太深入理解的朋友更加地深入android开发程序中去,并全面介绍Activity生命周期中的细节,理解Activity的生命周期对应用程序开发来说是...

    activity生命周期

    activity生命周期 为了理解android的activity生命周期写的demo

    实践三 Activity的生命周期与页面切换

    理解Activity的生命周期以及各个生命周期方法的使用。掌握页面切换的两种方法。 【实践要求】 1.理解Activity的组成结构和创建过程; 2.了解Activity的生命周期; 3.掌握Activity页面切换方法。 【任务和结果】 1....

    android Activity 生命周期的理解

    这篇文档是我在学习android 时对于生命周期的一点理解,一共使用了两个例子,内附例子代码,布局文件代码放上去,因为布局非常简单啦。。。

    Android Activity生命周期详解

    Activity 的生命周期。 一、理解Activity Activity是Android程序的4大组件之... 二、理解Activity的生命周期 手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足

    android activity 生命周期

    1. 最上層(即焦點所在)。 2. 不在最上層,但被上層蓋掉一部份(還有一部份可看到)。...Activity 是我们开发Android应用程序最重要的一个类。这个类的内容比较多,我理解多少 就写多少,希望你喜欢:)

    Android开发中Activity的生命周期及加载模式详解

    本篇博客就会介绍Activity生命周期中的不同阶段,通过实例的形式来窥探一下Activity的生命周期。搞明白Activity的生命周期是至关重要的,因为只有搞明白每个生命周期的每个阶段,你才能在不同段做不同的事情。 接...

    深入理解Activity

    建立配置和使用Activity,Activity生命周期与回调机制

    我用一张图彻底理解了Activity生命周期的含义(Android)

    Activity生命周期 1.图解Activity生命周期: 2.七个方法的含义 一、 onCreate :当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。 二、 onStart :该方法的触发表示所属活动将被展现给用户,...

    Android编程中activity的完整生命周期实例详解

    android中 activity有自己的生命周期,对这些知识的学习可以帮助我们在今后写程序的时候,更好的理解其中遇到的一些错误。这篇文章很长,希望不要耽误大家的时间~ 今天不会涉及太多关于activity栈的东西,主要说...

    ActivityDemo

    Activity生命周期的demo,便于对Activity生命周期的理解

    应用启动界面图片切换

    这个是activity界面之间图片切换,启动好多应用图片的切换,用的是Handler多线程做的,有注视,你可以理解activity生命周期,和handler运用。

    Android实验报告生命周期.doc

    Android 开发 (实验四) 实验题目:Activity生命周期验证试验 指导老师: 班 级:计算机科学与技术系班 姓 名:( 1. 实验目的 1、深入理解Activity运行机制和原理。 2、掌握Activity的声明周期各个阶段工作流程。 ...

    android-lifecycle:Android Activity Fragment生命周期图

    在努力弄清楚各个部分如何组合之后,我进行了一些研究,并整理了完整的Android Activity / Fragment生命周期图。 它具有两个并行的生命周期(活动和片段),它们按时间垂直排列。 生命周期阶段将按照活动和片段的...

    Fragment的生命周期

    对fragment的生命周期函数的执行先后顺序进行深入理解,本人在面试时,经常被问到的一道题。尤其是对比Activity的生命周期函数,并说出两者的差异与联系。

Global site tag (gtag.js) - Google Analytics