- 浏览: 67653 次
- 性别:
- 来自: Mercury
最新评论
一、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即可。
发表评论
文章已被作者锁定,不允许评论。
-
Android40_Dialog
2011-11-14 00:11 2997Dialog是Android常用的对话框控件。AlertDia ... -
Android39_Clock和TimePicker
2011-11-14 00:08 2361一、AnalogClock和DigitalClock ... -
Android38_ImageView和Gallery
2011-11-14 00:07 3614一、ImageView使用方法 ImageVi ... -
Android37_JSON数据解析
2011-11-08 00:14 2349一、JSON介绍 JSON(JavaSc ... -
Android36_Animations使用(四)
2011-11-08 00:14 3418一、LayoutAnimationsContrlller ... -
Android35_Animations使用(三)
2011-11-08 00:13 2650一、AnimationSet的具体使用方法 ... -
Android34_Animations使用(二)
2011-11-08 00:12 1958在代码中使用Animations可以很方便的调试、运行 ... -
Android33_Animations使用(一)
2011-11-08 00:12 2285一、Animations介绍 Anima ... -
Android31_AppWidget使用(二)
2011-11-05 00:09 2510一、PendingIntent介绍 PendingIn ... -
Android30_AppWidget使用(一)
2011-11-05 00:08 2261一、App Widget定义 App ... -
Android32_Notification用法
2011-11-05 00:09 1888Android系统的状态栏(Status Bar)中有一 ... -
Android29_SeekBar和RatingBar
2011-11-02 23:21 2120一、使用SeekBar步骤: SeekB ... -
Android28_ExpandableListActivity
2011-11-02 23:21 1488ExpandableListActivity就是可扩展的 ... -
Android27_AutoCompleteTextView
2011-11-02 23:21 1092一、创建AutoCompleteTextView ... -
Android26_DatePicker
2011-11-02 23:20 1781一、DatePicker和DatePickerDialo ... -
Android25_Spinner使用方法
2011-11-02 23:20 2816一、创建Spinner的步骤 1.在布局 ... -
Android24_Service初步
2011-10-18 22:27 1008一、Service概念 ... -
Android23_Socket编程
2011-10-18 22:19 1511一、什么是Socket Socket是基 ... -
Android22_WIFI网络操作
2011-10-18 22:12 1694一、什么是WIFI WIFI就是一种无线 ... -
Android21_广播机制(二)
2011-10-18 22:00 1007一、注册BroadcastReceiver的方法 ...
相关推荐
Activity生命周期是Android开发中至关重要的一环,因为它决定了应用如何响应用户操作和系统事件。理解Activity的生命周期对于编写高效、稳定且用户体验良好的应用至关重要。 Activity的生命周期由多个关键状态组成...
这是Activity生命周期的第一个回调,通常在这里进行布局加载、初始化变量和设置基本UI等操作。 2. **可见态(Started)**: `onStart()`方法标志着Activity变得对用户可见,但还没有占据屏幕的焦点。此时,Activity...
Android开发教程_016_Activity生命周期_标清
Android中的Activity生命周期是每个Android开发者必须深入理解的关键概念。它涉及到Activity从创建到销毁的整个过程,以及在不同用户交互和系统状态变化时如何响应。本文将详细解析Activity的生命周期,并通过实例...
### Android Activity 生命周期详解 #### 一、概述 在Android开发中,`Activity`是四大组件之一,用于构建用户界面,并负责与用户的交互...对于Android开发者而言,掌握`Activity`生命周期是必不可少的基础技能之一。
实验一 第一个Android程序和Activity生命周期。实验要求: 1.用工程向导生成第一个Android程序,并在模拟器上运行 注意在新建应用的选择SDK版本时选API 18 2.熟悉Android应用程序的基本文件结构 3.了解使用开发环境...
本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...
Android Activity 生命周期 Android Activity 生命周期...Android Activity 生命周期是一个复杂的过程,理解 Activity 生命周期是 Android 开发的基础。掌握了 Activity 生命周期,可以更好地开发 Android 应用程序。
一、Activity生命周期概述 Activity的生命周期由创建、启动、运行、暂停、停止和销毁这6个状态构成。每个状态的变化都会触发特定的方法回调,开发者可以重写这些方法以执行相应的操作。 1. 创建(Creation): - `...
### Android 中从Activity1跳转到Activity2再回到Activity1所经历的生命周期 在Android开发过程中,理解Activity的生命周期对于管理界面状态、处理用户交互以及响应系统事件至关重要。本文将详细解析从一个Activity...
本实验报告将深入探讨Android应用程序,尤其是Activity、Service和Intent Receiver的生命周期,并解释如何正确管理这些组件以避免不必要的进程销毁。 首先,Android应用通常在独立的Linux进程中运行。当应用需要...
总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...
### Android启动及Activity生命周期分析 在Android开发过程中,理解应用程序如何启动及Activity的生命周期是非常重要的。这不仅有助于我们更好地管理程序的状态,还能帮助我们在遇到内存泄漏等问题时进行快速定位和...
### 一、Android Activity生命周期介绍 #### 1. onCreate() 当Activity首次创建时被调用,这是初始化Activity的最佳时机。在该方法中通常会执行一些初始化操作,比如设置布局文件、初始化UI组件等。 示例: ``` @...
**Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...
屏幕旋转时Activity的生命周期管理是Android开发中的一个核心概念。理解和掌握这一过程,能够帮助开发者创建更加稳定、响应迅速的应用。通过适当地处理生命周期回调,可以防止数据丢失,保持用户界面的状态,并优化...
日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...
在ExmActLife这个文件中,很可能包含了不同生命周期方法的示例代码,以及模拟不同启动模式的实验,通过这些实践,开发者可以更好地理解和掌握Activity生命周期的控制,从而优化应用性能和用户体验。实践中,我们应...
有助于深入了解Android Activity生命周期的测试代码,可以结合博客http://blog.csdn.net/freetangxiaoying/article/details/17167819领悟。