`

Android生命周期的学习

阅读更多
package cn.com;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class AndroidLifecycle extends Activity {

	public void onCreate(Bundle savedInstanceState) {
		System.out.println("First Activity =======onCreate()========");

		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		Button btn = (Button) findViewById(R.id.Button01);
		btn.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setClass(AndroidLifecycle.this, Second.class);
				startActivity(intent);
			}
		});
	}

	// Called after onCreate — or after onRestart when the activity had been
	// stopped, but is now again being displayed to the user. It will be
	// followed by onResume
	protected void onStart() {
		System.out.println("First Activity =======onStart()========");
		super.onStart();
	}

	// Called after onRestoreInstanceState, onRestart, or onPause, for your
	// activity to start interacting with the user
	protected void onResume() {
		System.out.println("First Activity =======onResume()========");
		super.onResume();
	}

	// Called as part of the activity lifecycle when an activity is going into
	// the background, but has not (yet) been killed
	protected void onPause() {
		System.out.println("First Activity =======onPause()========");
		super.onPause();
	}

	// Called when you are no longer visible to the user. You will next receive
	// either onRestart, onDestroy, or nothing, depending on later user
	// activity.
	protected void onStop() {
		System.out.println("First Activity =======onStop()========");
		super.onStop();
	}

	// Perform any final cleanup before an activity is destroyed
	protected void onDestroy() {
		System.out.println("First Activity =======onDestroy()========");
		super.onDestroy();
	}

	// Called after onStop when the current activity is being re-displayed to
	// the user (the user has navigated back to it). It will be followed by
	// onStart and then onResume
	protected void onRestart() {
		System.out.println("First Activity =======onRestart()========");
		super.onRestart();
	}

}

package cn.com;

import android.app.Activity;
import android.os.Bundle;

public class Second extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main1);
		System.out.println("Second Activity =======onCreate()========");
	}

	// Called after onCreate — or after onRestart when the activity had been
	// stopped, but is now again being displayed to the user. It will be
	// followed by onResume
	protected void onStart() {
		System.out.println("Second Activity =======onStart()========");
		super.onStart();
	}

	// Called after onRestoreInstanceState, onRestart, or onPause, for your
	// activity to start interacting with the user
	protected void onResume() {
		System.out.println("Second Activity =======onResume()========");
		super.onResume();
	}

	// Called as part of the activity lifecycle when an activity is going into
	// the background, but has not (yet) been killed
	protected void onPause() {
		System.out.println("Second Activity =======onPause()========");
		super.onPause();
	}

	// Called when you are no longer visible to the user. You will next receive
	// either onRestart, onDestroy, or nothing, depending on later user
	// activity.
	protected void onStop() {
		System.out.println("Second Activity =======onStop()========");
		super.onStop();
	}

	// Perform any final cleanup before an activity is destroyed
	protected void onDestroy() {
		System.out.println("Second Activity =======onDestroy()========");
		super.onDestroy();
	}

	// Called after onStop when the current activity is being re-displayed to
	// the user (the user has navigated back to it). It will be followed by
	// onStart and then onResume
	protected void onRestart() {
		System.out.println("Second Activity =======onRestart()========");
		super.onRestart();
	}

}


我们知道,在第一个Activity启动的时候,依次运行
onCreate()-->onStart()-->onResume(),当点击按钮启动第二个activity的时候,我们可以看到第一个activity的onPause()调用了,但是这个时候第一个activity还可以看到,没有被完全遮盖住,稍后第二个activitiy启动了,所以又依次调用了第二个activity的onCreate()-->onStart()-->onResume();这个时候第一个activity就完全不可见了,不可与user进行交互操作了,所以这个时候我们就看到第一个activity的onStop()方法就被调用了,但这个时候我们如果点击手机的back键,第2个activity就会调用onPause()方法,但是第一个activity又重新调回到最前面,所以现在调用的是onRestart()-->onStart()-->onResume();而这个时候第2个activity在第一个activity调用了onResume()后,又变的不可与user进行交互了,就调用了onStop()方法,这个时候我们要注意的是它又接着调用了onDestory()方法,因为activity是栈的原理,先进后出,第2个activity由于是后进(后显示出来),所以现在出去的话,就直接onDestory()掉了,如果这个时候我们在点击back退出的话,就会在依次调用第一个activity的
onPause()-->onStop()-->onDestory()方法;
    以上说的估计看起来不是很明白,请见谅,我有个视频地址,是一个叫陈川的讲的,讲的还不错,贴上地址:http://u.youku.com/user_video/id_UMjYxMzI0MjQ4.html
里面的第7,8讲讲的很清楚,希望对学习的朋友有所帮助!!!

生命周期的在补充点:
Active/Runing一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态.
Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态.此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互.
Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped状态.
Killed Activity 被系统杀死回收或者没有被启动时处于 Killed状态.
   
分享到:
评论
2 楼 owennet 2010-10-07  
讲的挺清楚了,谢谢
1 楼 beeb00 2010-09-20  
写的好,学习了

相关推荐

    Android生命周期Demo

    在学习Android生命周期时,开发者需要创建和调试不同生命周期方法,如`onCreate()`, `onStart()`, `onResume()`, `onPause()`, `onStop()`, `onDestroy()`。通过在这些方法中添加Log语句或者使用Android Studio的...

    浅谈Android生命周期

    在Android应用开发中,理解并掌握Android生命周期是至关重要的。Android生命周期是指一个Activity、Service、BroadcastReceiver或...通过持续学习和实践,开发者可以不断提升自己在Android生命周期管理方面的专业技能。

    Android生命周期的演示程序

    在Android应用开发中,Activity是用户界面的基本单元,...总的来说,这个"Android生命周期的演示程序"是一个很好的学习工具,它让我们有机会亲手实践并观察Activity在不同情况下的行为,从而加深对Android开发的理解。

    Android生命周期详细案例

    而ActivityLife可能是一个示例代码文件,包含了Activity生命周期的各个回调方法,供开发者参考学习。 除了上述基本状态,Android还提供了`onSaveInstanceState()`方法来保存Activity的状态信息,以防系统因内存压力...

    Android-Disposer使用Android的生命周期轻松部署RxJava流

    通过查看这些内容,开发者可以学习如何将Disposer集成到自己的项目中,以及如何利用它来改善RxJava的生命周期管理。 总的来说,Disposer是一个针对Android开发者的工具,它使管理RxJava订阅变得简单且安全。通过与...

    Android 生命周期例子

    这个"Android生命周期例子"提供了深入理解这一概念的实践代码。生命周期管理是确保应用性能、响应性和资源有效利用的基础。 首先,Android Activity的生命周期可以分为几个主要阶段:创建(Creation)、启动(Start...

    android Activity生命周期

    Activity的生命周期是Android开发者必须深入理解的关键概念,因为它直接影响到应用的性能、内存管理和用户体验。本文将详细探讨Android Activity的生命周期,并通过源码分析和工具辅助来深化理解。 一、Activity...

    Android activity生命周期示例

    本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...

    android的生命周期的例子

    在Android应用开发中,理解并熟练掌握Android组件(如Activity)的生命周期至关重要。生命周期是指一个组件从创建到销毁的整个过程,它涉及到一系列方法的调用,这些方法定义了组件在不同状态之间的转换。本例将深入...

    android activity 生命周期的深入学习

    深入理解Activity的生命周期对于创建高效、响应迅速且用户体验优良的Android应用至关重要。本篇文章将详细探讨Activity生命周期的各个阶段及其转换,以及如何在这些阶段中适当地管理资源。 一、Activity生命周期的...

    Android Fragment的生命周期详解

    理解Fragment的生命周期对于高效且稳定地构建Android应用至关重要。本文将深入探讨Fragment的生命周期,帮助开发者更好地理解和掌握这一核心概念。 Fragment的生命周期与Activity紧密相关,因为它总是嵌套在某个...

    AndroidLifeCycle,处理android生命周期的简单方法.zip

    通过学习和应用AndroidLifeCycle项目,开发者可以更好地理解和控制Android组件的生命周期,提升应用的质量和用户体验。同时,它也展示了如何利用现代Android开发库来简化生命周期管理,让代码更加整洁和高效。

    Android学习3——Activity生命周期

    在“Android学习3——Activity生命周期”这个主题中,我们将深入探讨Activity如何启动、运行、暂停、停止以及销毁,并了解每个状态之间的转换。 Activity生命周期主要包括以下几个关键状态: 1. **初始状态...

    测试Android Activity生命周期Demo

    本示例“测试Android Activity生命周期Demo”旨在通过实际代码帮助开发者理解并掌握Activity的生命周期,这对于创建稳定、高效的Android应用至关重要。 Activity的生命周期包括了多个关键状态,如初始化、启动、...

    Android学习笔记(十五)——碎片的生命周期

    本篇学习笔记将深入探讨碎片的生命周期,这对于理解如何有效管理Android应用的用户界面至关重要。 碎片的生命周期与Activity的生命周期紧密关联,但它们之间存在着一些差异。首先,让我们来看看一个Fragment的基本...

    android 生命周期,service演示

    在本演示中,我们将深入探讨这两个概念以及Android应用程序的生命周期,同时还会涉及到界面(UI)的透明背景设置和界面切换的实现。 首先,让我们来了解一下Android的生命周期。Activity是用户与应用程序交互的主要...

    android activity的生命周期小例子

    在Android应用开发中,Activity是用户界面的基本组件,它代表了用户可以交互的单个屏幕。Activity的生命周期是Android开发者必须深入...通过实际的例子和日志追踪,我们可以直观地学习和调试Activity的生命周期管理。

    Android Activity生命周期测试程序

    Android Activity是Android应用程序的核心组件之一,它代表了用户与应用交互的界面,比如启动屏幕、主界面等。...通过实践和学习,开发者能够更好地控制和管理Activity的生命周期,从而构建出更加出色的Android应用。

    Android 生命周期

    在Android应用开发中,"Android生命周期"是每个开发者必须深入理解和掌握的核心概念。...此外,通过学习和实践`ActivityLifeCycle`等示例项目,可以帮助开发者更深入地理解和应用Android生命周期知识。

    Android中的生命周期LifeCycle

    在Android应用开发中,了解和掌握Activity的生命周期是至关重要的,因为这直接影响到应用程序的性能、内存管理和用户体验。本文将深入探讨Android中的生命周期(LifeCycle)机制,以及如何利用相关工具进行调试和...

Global site tag (gtag.js) - Google Analytics