Android Activity生命周期详解_Android

Activity 的生命周期。

一、理解Activity

Activity是Android程序的4大组件之一。

Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。

学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件;或者你可以把它理解成一个Windows的窗口。

下面看一下Activity类的继承关系:

 

 从这里可以看到Activity是Context类的子类,大家对此先有个印象。

 二、理解Activity的生命周期

手机最重要也是最基础的功能是打电话,也就意味着电话来的时候可能随时要把现在的程序暂停,如果电量不足的时候也可能随时要把现有程序关闭;因此Android程序和电脑上的程序有所不同,具体到Activity,Activity的生命周期不是自身控制的,而是由Android系统控制的。

在android中Activity有四种基本状态:

1、Running

位于屏幕最前端时,此时处于可见状态,和用户可交互的状态。

2、Paused

当Acitivy被另一个透明的或者非全屏的Activity覆盖时的状态叫Paused状态,虽然可见但不可交互。
3、Stop

当Activity被另外一个Activity覆盖、界面不可见时处于Stop状态。

4、Killed

Activity被系统杀死或者跟本没启动时就是Killed状态。

我们下面看一下Activity的生命周期:

 

  下面是上图的简单翻译版本:

 

Activity栈:

Android通过Activity栈的方式来管理Activity。

 正在运行的Activity 处在在栈的最顶端,它是运行状态的;

当有新Activity进入屏幕最上端时,原来的Activity就会被压入第二层,如果他的屏幕没有被完全遮盖,那么他处于Pause状态,如果他被遮盖那么他处于Stop状态。

当然不管你出于任何一层,都可能在系统觉得资源不足时被强行关闭,当然关闭时在栈底的程序最先被关闭。

譬如:当你在程序中调用 Activity.finish()方法时,结果和用户按下 BACK 键一样:他告诉 Activity Manager该Activity实例可以被“回收”。随后 Activity Manager 激活处于栈第二层的 Activity 并重新入栈,把原 Activity 压入到栈的第二层,从 Running 状态转到 Paused 状态。

三.实例:观察翻转屏幕导致的Activity状态变化

Activity类中定义了和生命周期相关的一些方法,这些方法会在状态改变时被调用,譬如创建时调用的方法onCreate()。因此我们可以写一个程序,在程序的每个一个方法中写注释,然后看看运行时注释的打印顺序来跟踪Activity的状态变化。

下面是程序代码:

package android.basic.lesson4;import android.app.Activity;
import android.os.Bundle;
import android.util.Log;public class MainActivityLife extends Activity {
String tag =”[MainActivityLife]“;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.i(tag, “onCreate”);
}@Override
public void onStart(){
super.onStart();
Log.i(tag, “onStart”);
}@Override
public void onPause(){
super.onPause();
Log.i(tag, “onPause”);
}@Override
public void onResume(){
super.onResume();
Log.i(tag, “onResume”);
}@Override
public void onStop(){
super.onStop();
Log.i(tag, “onStop”);
}@Override
public void onDestroy(){
super.onDestroy();
Log.i(tag, “onDestroy”);
}
}

然后调出LogCat工具,来观察程序的运行细节。通过LogCat的过滤器我们可以看到程序启动、屏幕翻转、按后退键程序退出的过程,这有助于我们验证刚才所学的知识。

我们可以看到屏幕翻转时,Android系统把ActivityLife这个Activity先杀死(具体顺序是先暂停、后关闭再销毁),然后再启动(具体顺序是先创建,后启动再恢复)。通过这个例子我们也清楚的看到了,是Android系统而不是程序员在控制Activity的生命周期。

以上就是对Android Activity 生命周期的介绍,有需要的朋友可以参考下。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, activity
, 生命周期
详解
activity生命周期详解、android生命周期详解、activity 生命周期、activity的生命周期、安卓activity生命周期,以便于您获取更多的相关知识。

时间: 2024-10-24 18:32:54

Android Activity生命周期详解_Android的相关文章

Android Activity生命周期详解

Activity 的生命周期. 一.理解Activity Activity是Android程序的4大组件之一. Activity是Android程序的表示层.程序的每一个显示屏幕就是一个Activity. 学过WEB开发的同学,可以把Activity理解成网页中的一个JSP文件:或者你可以把它理解成一个Windows的窗口. 下面看一下Activity类的继承关系: 从这里可以看到Activity是Context类的子类,大家对此先有个印象. 二.理解Activity的生命周期 手机最重要也是最

Android Service生命周期详解_Android

引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状 态:对于活动,对用户有时候可见,有时候不可见.组件生命周期将讨论活动.服务.广播接收者的生命周期--包括在生命周期中他们可能的状态.通知状态改变 的方法.及这些状态的组件寄宿的进程被终结和实例被销毁的可能性. 上篇Android开发之旅:组件生命周期(一)讲解了论活动的生命周期及他们可能的状态.通知状态改变的方法.本篇将介绍服务和广播接收者的生命周

Android开发之activity的生命周期详解_Android

本文实例讲述了Android activity的生命周期.分享给大家供大家参考,具体如下: activity类处于android.app包中,继承体系如下: 1.Java.lang.Object 2.android.content.Context 3.android.app.ApplicationContext 4.android.app.Activity activity是单独的,用于处理用户操作.几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以通

Android编程中的四大基本组件与生命周期详解_Android

本文实例讲述了Android编程中的四大基本组件与生命周期.分享给大家供大家参考,具体如下: Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity : 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最

Android Fragment的生命周期详解_Android

Fragments的生命周期        每一个fragments 都有自己的一套生命周期回调方法和处理自己的用户输入事件. 对应生命周期可参考下图: 详解Android Fragment之二:Fragment的创建和生命周期         创建片元(Creating a Fragment)        To create a fragment, you must create a subclass of Fragment (or an existing subclass of it).

Android Service生命周期详解

引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状 态:对于活动,对用户有时候可见,有时候不可见.组件生命周期将讨论活动.服务.广播接收者的生命周期--包括在生命周期中他们可能的状态.通知状态改变 的方法.及这些状态的组件寄宿的进程被终结和实例被销毁的可能性. 上篇Android开发之旅:组件生命周期(一)讲解了论活动的生命周期及他们可能的状态.通知状态改变的方法.本篇将介绍服务和广播接收者的生命周

php的生命周期详解

php的生命周期 在常见的webserver环境中, 你不能直接启动php解释器; 一般是启动apache或其他webserver, 由它们加载php处理需要处理的脚本(请求的.php文档). 一切都从sapi开始 尽管看起来有所不同, 但实际上CLI的行为和web方式一致. 在命令行中键入php命令将启动"命令行sapi", 它实际上就像一个设计用于服务单请求的迷你版webserver. 当脚本运行完成后, 这个迷你的php-webserver终止并返回控制给shell. 启动和终止

Android Activity生命周期和堆栈管理的详解

Activity的生命周期 Activity是Android中的四大组件之一,也是最基本,最重要的组件,是android系统提供一个可视化的,能与用户交换的组件. 系统提供的组件,不需要用户实例化,用户也不能实例化,是系统进行回调,例如web开发的servlet也是系统提供的,和android 的其他系统组件一样. 那么不需要我们实例化我们怎么用呢,这些组件都有相同的特点就是: 1.都需要在配置文件中注册 2.都需要自定义类去继承系统的Api 3.都有自己的生命周期 那么Activity的生命周

Android开发之activity的生命周期详解

本文实例讲述了Android activity的生命周期.分享给大家供大家参考,具体如下: activity类处于android.app包中,继承体系如下: 1.Java.lang.Object 2.android.content.Context 3.android.app.ApplicationContext 4.android.app.Activity activity是单独的,用于处理用户操作.几乎所有的activity都要和用户打交道,所以activity类创建了一个窗口,开发人员可以通