重中之重,在面试腾讯与cvte移动端时,都被面试官问到了这个问题,当时觉得自己答的不太好,经常创建项目,倒是对这个流程不甚清楚,因此回来恶补,也正好学到了这里。
Activity是整个Android平台的基本构成,生命周期主要包含三个阶段:
1.运行态 程序显示前台,具有焦点,可以与用户交互,事件处理等
2.暂停态
程序失去焦点,被其他处于运行态的Activity取代在屏幕前台显示,如果切换后的Activity程序不 能 铺满整个窗口或者透明,该暂停态Activity仍旧可见,但是不可以与其交互
3.停止态
没有焦点,并且完全不可见,但是保留自身运行状态,停止运行的Activity会在系统需要时被结束
Activity生命周期控制方法:
用一个流程图来表示:
下面用一个实例来完成整个过程的解析,定义两个程序,完成跳转Intent,并在两个Activity程序中写好各自的生命周期方法:
定义FirstActivity布局文件
<Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="start" android:text="启动第二个Activity程序" />
放一个Button即可,并绑定单击事件处理方法
然后定义FirstActivity程序进行Intent跳转:
public class FirstActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { System.out.println("FirstActivity-->onCreate"); super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); } //启动单击事件 public void start(View view){ Intent it=new Intent(FirstActivity.this,SecondActivity.class); FirstActivity.this.startActivity(it); } //第一次创建界面时调用 public void onStart(){ System.out.println("FirstActivity-->onStart"); super.onStart();//调用父类方法 } //获得焦点时触发 public void onResume(){ System.out.println("FirstActivity-->onResume"); super.onResume();//调用父类方法 } //当启动其他Activity时触发 public void onPause(){ System.out.println("FirstActivity-->onPause"); super.onPause();//调用父类方法 } //当Activity不可见时调用 public void onStop(){ System.out.println("FirstActivity-->onStop"); super.onStop();//调用父类方法 } //当Activity重新运行时调用 public void onRestart(){ System.out.println("FirstActivity-->onRestart"); super.onRestart();//调用父类方法 } //当Activity销毁时调用 public void onDestroy(){ System.out.println("FirstActivity-->onDestroy"); super.onDestroy();//调用父类方法 } }
第二个程序异曲同工,只不过是将跳转改成:
Intent it=new Intent(SecondActivity.this,FirstActivity.class); SecondActivity.this.startActivity(it); SecondActivity.this.finish();
主布局函数两个分别如下
最后修改AndroidMainfest.xml文件。配置两个Activity程序
<activity android:name="com.example.activitylife.SecondActivity" android:label="@string/app_name" > </activity>
现在开始操作,首先启动应用程序,将输出:
然后按动按钮,将启动第二个Activity,将按顺序输出以下字眼:
现在我们按手机的返回键返回到第一个Activity:
如果通过按键返回到第一个应用程序则为
我们运行发现,当第二个程序完全遮盖第一个程序时onstop才会调用,现在我们实验以下将第二个程序定义成对话框,并不遮盖第一个程序结果会怎样?
将AndroidMainfest定义第二个程序为对话框
<activity android:name="com.example.activitylife.SecondActivity" android:theme="@android:style/Theme.Dialog" android:label="@string/app_name" > </activity>
当启用第二个Activity时
打印出:
可见当第二个程序么哟完全覆盖第一个程序onStop并未调用
然后我们按返回键返回第一个程序
不调用第一个程序onStart界面,因为没有stop哪来start?
接下来我们按键返回第一个Activity
这里意味着按键返回第一个程序,表示之前所有操作都将重新执行。
学到这里大家都明白了Activity7大周期控制方法了吧。
其实多个应用程序也是一样的,多个Activity
相当于入栈一般,但是调用finish的方法意味着被销毁,则不入栈。
相关推荐
**Activity生命周期** Activity的生命周期包括了从创建到销毁的各个阶段,主要有以下7个关键状态: 1. **创建(Created)**:当Activity首次被创建时,会调用`onCreate()`方法。在这里,通常进行初始化工作,如...
日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...
在Android应用开发中,Activity是用户界面的基本单元,它负责展示...在提供的`Activity_04`文件中,可能包含了演示这些生命周期方法变化的代码示例,通过学习和分析这些示例,开发者可以加深对Activity生命周期的理解。
"测试Activity生命周期"的DEMO旨在帮助开发者直观地了解和调试Activity在不同场景下的状态变化。在这个DEMO中,我们可以通过观察日志输出或使用Android Studio的调试工具来跟踪Activity的状态。 Activity的生命周期...
Activity生命周期的理解和管理对于编写高效、响应式的Android应用至关重要。本实验旨在深入探索Activity的生命周期,并通过实践来理解各个阶段的工作流程以及它们之间的转换。 首先,我们来看一下Activity的生命...
很好的一张Activity生命周期图,可以很清楚了解Activity生命周期的流程图
这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、数据绑定等。 2. **启动(Started)**:`onStart()`方法标志着Activity可见但可能不完全在前台。用户可以看到Activity,但不能与其交互...
这是Activity生命周期中的活跃状态。 - `onPause()`:当Activity即将被另一个Activity覆盖,但仍然部分可见时,系统调用`onPause()`。在此方法中,你应该保存临时数据,但不应执行耗时操作,因为它会影响新Activity...
本示例项目“Android activity生命周期示例”旨在帮助开发者深入理解Activity的生命周期及其各个阶段,这对于优化用户体验和资源管理至关重要。 Activity的生命周期包括以下几个主要状态: 1. **创建(Created)**...
在"Activity生命周期完美呈现"的项目中,开发者可以创建一个简单的Activity,通过Log输出或可视化的方式,展示Activity在不同状态间的转换,这样可以直观地看到每个生命周期方法的调用顺序,加深理解。 总之,理解...
谷歌官方提供的Activity生命周期示例("Activity lifecycle demo")是一个实用的教学工具,帮助开发者直观地理解Activity在不同情况下的状态变化。 这个demo最初是基于Eclipse开发的,但已经转化为更适合现代开发...
7. onDestroy():Activity即将被销毁时调用,这是Activity生命周期的最后阶段。在此阶段,可以做彻底的清理工作,例如关闭数据库连接、取消定时任务等。 二、Activity与Fragment的生命周期 Fragment是Android 3.0...
### 一、Android Activity生命周期介绍 #### 1. onCreate() 当Activity首次创建时被调用,这是初始化Activity的最佳时机。在该方法中通常会执行一些初始化操作,比如设置布局文件、初始化UI组件等。 示例: ``` @...
### Activity 生命周期总结 在 Android 开发中,理解 Activity 的生命周期是非常重要的,因为它直接影响到应用程序的行为、性能以及用户体验。本文将详细介绍 Activity 生命周期中的各个方法及其触发条件,并通过...
了解Activity的生命周期是每个Android开发者必备的知识。Activity的生命周期由一系列的方法组成,这些方法会在特定时刻被系统调用,例如当Activity创建、启动、暂停、恢复或销毁时。通过分析Activity的源代码,我们...
在深入探讨Activity生命周期之前,我们先理解一下Activity的基本概念。Activity代表一个可视化的用户界面,它可以是手机屏幕上的一个完整窗口,也可以是多个窗口的一部分。在用户与应用的交互过程中,Activity会经历...
Android Activity 生命周期 Android Activity 生命周期是指 Activity 从创建到销毁的整个过程,该过程中会经历多个状态变化,每个状态变化都会触发相应的回调方法。理解 Activity 生命周期是 Android 开发的基础。 ...
总之,深入理解Activity生命周期和其背后的源码逻辑,对于编写高效、响应迅速且用户体验优秀的Android应用至关重要。开发者应熟练掌握这些知识点,以便在设计和调试应用时能得心应手。通过实践和分析ActivityDemo,...
一、Activity生命周期概述 Activity的生命周期由创建、启动、运行、暂停、停止和销毁这6个状态构成。每个状态的变化都会触发特定的方法回调,开发者可以重写这些方法以执行相应的操作。 1. 创建(Creation): - `...