`
Bauble
  • 浏览: 67650 次
  • 性别: Icon_minigender_1
  • 来自: Mercury
社区版块
存档分类
最新评论

Android07_Activity生命周期(一)

阅读更多

一、Activity的生命周期结构



 二、Activity
生命周期函数

Activity共有七个生命周期函数:

 

 public class Activity extends ApplicationContext {
     protected void onCreate(Bundle savedInstanceState);

     protected void onStart();
     
     protected void onRestart();

     protected void onResume();

     protected void onPause();

     protected void onStop();

     protected void onDestroy();
 }

  1.onCreate()方法:当一个activity第一次被创建的时候就会被调用。在onCreate()方法里面通常会设置activity所使用的布局文件,还有按钮等控件绑定监听器等。

 

2.onStart()方法:当一个activity能够被看见的时候就会被调用。

 

3.onResume()方法:当activity能够获得用户的焦点的时候就会被调用。

 

4.onPause()方法:应用程序启动另外一个activity的时候,就会调用第一个activity的onPause()方法。此时由于已经启动了第二个activity(第一次),所以,又会依次调用第二个activity的OnCreate()、onStart()和onResume()方法。最后会执行第一个activity的onStop()方法。

onPause()方法中,一般进行的是数据的保存。

 

5.onStop()方法:当一个activity对于一个用户来说是不可见(被遮挡)的情况下就会调用。但是如果第二个activity是以对话框的形式出来的,那么这个对话框没有把上一个activity遮挡起来,所以此时不会调用onStop方法。

 

6.onRestart()方法:当一个activity被onStop了,此时重新启动,则会调用。并且现在不会调用onCreate()方法,因为并不是创建,原activity没有被销毁。

 

7.onDestory()方法:启动该方法有两种情况

1)在activity中明确调用了finish()方法,就会销毁。

2)当android的系统资源不够用了,且activity是不可见的(已经onStop了)。

 

三、例子程序

这个例子很简单,两个activity,第一个中有一个按钮,点击之后会跳转到第二个activity中。且两个activity都重写了生命周期的7个方法。界面如下:


    


    
 
  Activity04.java

 

package com.android.activity;

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 Activity04 extends Activity {

	private Button myButton = null;
	
	@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		System.out.println("firstActivity---->onCreate");
        
        myButton = (Button)findViewById(R.id.myButton);
        myButton.setText(R.string.myButton);
        myButton.setOnClickListener(new MyButtonListener());
    }
	
	@Override
	protected void onDestroy() {
		System.out.println("firstActivity---->onDestroy");
		super.onDestroy();
	}

	@Override
	protected void onPause() {
		System.out.println("firstActivity---->onPause");
		super.onPause();
	}

	@Override
	protected void onRestart() {
		System.out.println("firstActivity---->onRestart");
		super.onRestart();
	}

	@Override
	protected void onResume() {
		System.out.println("firstActivity---->onResume");
		super.onResume();
	}

	@Override
	protected void onStart() {
		System.out.println("firstActivity---->onStart");
		super.onStart();
	}

	@Override
	protected void onStop() {
		System.out.println("firstActivity---->onStop");
		super.onStop();
	}

	class MyButtonListener implements OnClickListener{

		public void onClick(View v) {
			Intent intent = new Intent();
			intent.setClass(Activity04.this, OtherActivity.class);
			Activity04.this.startActivity(intent);
		}
		
	}
}

  OtherActivity.java

 

package com.android.activity;

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

public class OtherActivity extends Activity{

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other);
		System.out.println("secondActivity---->onCreate");
	}

	@Override
	protected void onDestroy() {
		System.out.println("secondActivity---->onDestroy");
		super.onDestroy();
	}

	@Override
	protected void onPause() {
		System.out.println("secondActivity---->onPause");
		super.onPause();
	}

	@Override
	protected void onRestart() {
		System.out.println("secondActivity---->onRestart");
		super.onRestart();
	}

	@Override
	protected void onResume() {
		System.out.println("secondActivity---->onResume");
		super.onResume();
	}

	@Override
	protected void onStart() {
		System.out.println("secondActivity---->onStart");
		super.onStart();
	}

	@Override
	protected void onStop() {
		System.out.println("secondActivity---->onStop");
		super.onStop();
	}

}

  由于输出信息较多,为了便于观察,可以打开Android的logCat视图


在该视图中添加一个System.out的过滤器


点击ok后如下图所示:



 System.out标签中只会显示输出信息。

 

运行项目,出现第一个activity时,显示信息为:



 此时由于第一个activity第一次启动,所以会依次调用onCreate、onStart和onResume方法。

 

当点击按钮后,显示信息为:



 此时,第一个activity被覆盖,第二个activity启动,所以会调用第一个activity的onPause方法,同时依次调用第二个activity的onCreate、onStart、onResume方法,并且由于第一个activity不可见了所以会将其停止。

 

当按返回键时,显示信息为:



 此时第二个activity被覆盖,会调用其onPause方法,又由于第一个activity并没有被销毁(destroy),所以并不需要重新创建第一个activity,只restart即可。

  • 大小: 64.6 KB
  • 大小: 21.4 KB
  • 大小: 17.6 KB
  • 大小: 9.9 KB
  • 大小: 14.5 KB
  • 大小: 10.2 KB
  • 大小: 12.6 KB
  • 大小: 16.8 KB
  • 大小: 21.7 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    android_Activity生命周期

    Activity生命周期是Android开发中至关重要的一环,因为它决定了应用如何响应用户操作和系统事件。理解Activity的生命周期对于编写高效、稳定且用户体验良好的应用至关重要。 Activity的生命周期由多个关键状态组成...

    Android_Activity_生命周期例子

    这是Activity生命周期的第一个回调,通常在这里进行布局加载、初始化变量和设置基本UI等操作。 2. **可见态(Started)**: `onStart()`方法标志着Activity变得对用户可见,但还没有占据屏幕的焦点。此时,Activity...

    Android开发教程_016_Activity生命周期_标清.flv

    Android开发教程_016_Activity生命周期_标清

    两分钟让你明白Android_Activity生命周期

    Android中的Activity生命周期是每个Android开发者必须深入理解的关键概念。它涉及到Activity从创建到销毁的整个过程,以及在不同用户交互和系统状态变化时如何响应。本文将详细解析Activity的生命周期,并通过实例...

    Android_Activity生命周期详解(图文)

    ### Android Activity 生命周期详解 #### 一、概述 在Android开发中,`Activity`是四大组件之一,用于构建用户界面,并负责与用户的交互...对于Android开发者而言,掌握`Activity`生命周期是必不可少的基础技能之一。

    实验一 第一个Android程序和Activity生命周期.zip

    实验一 第一个Android程序和Activity生命周期。实验要求: 1.用工程向导生成第一个Android程序,并在模拟器上运行 注意在新建应用的选择SDK版本时选API 18 2.熟悉Android应用程序的基本文件结构 3.了解使用开发环境...

    Android activity生命周期示例

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

    Android Activity生命周期

    Android Activity 生命周期 Android Activity 生命周期...Android Activity 生命周期是一个复杂的过程,理解 Activity 生命周期是 Android 开发的基础。掌握了 Activity 生命周期,可以更好地开发 Android 应用程序。

    android Activity生命周期

    一、Activity生命周期概述 Activity的生命周期由创建、启动、运行、暂停、停止和销毁这6个状态构成。每个状态的变化都会触发特定的方法回调,开发者可以重写这些方法以执行相应的操作。 1. 创建(Creation): - `...

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    ### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...

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

    本实验报告将深入探讨Android应用程序,尤其是Activity、Service和Intent Receiver的生命周期,并解释如何正确管理这些组件以避免不必要的进程销毁。 首先,Android应用通常在独立的Linux进程中运行。当应用需要...

    android Activity生命周期详解(图文)

    总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...

    android启动以及activity生命周期分析

    ### Android启动及Activity生命周期分析 在Android开发过程中,理解应用程序如何启动及Activity的生命周期是非常重要的。这不仅有助于我们更好地管理程序的状态,还能帮助我们在遇到内存泄漏等问题时进行快速定位和...

    android activity 生命周期详细介绍

    ### 一、Android Activity生命周期介绍 #### 1. onCreate() 当Activity首次创建时被调用,这是初始化Activity的最佳时机。在该方法中通常会执行一些初始化操作,比如设置布局文件、初始化UI组件等。 示例: ``` @...

    Activity生命周期与启动模式

    **Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...

    Android屏幕旋转时Activity的生命周期

    屏幕旋转时Activity的生命周期管理是Android开发中的一个核心概念。理解和掌握这一过程,能够帮助开发者创建更加稳定、响应迅速的应用。通过适当地处理生命周期回调,可以防止数据丢失,保持用户界面的状态,并优化...

    Activity生命周期演示

    日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...

    Android说明Activity生命周期的代码例子

    在ExmActLife这个文件中,很可能包含了不同生命周期方法的示例代码,以及模拟不同启动模式的实验,通过这些实践,开发者可以更好地理解和掌握Activity生命周期的控制,从而优化应用性能和用户体验。实践中,我们应...

    Android Activity生命周期测试代码

    有助于深入了解Android Activity生命周期的测试代码,可以结合博客http://blog.csdn.net/freetangxiaoying/article/details/17167819领悟。

Global site tag (gtag.js) - Google Analytics