`
阅读更多

                     重中之重,在面试腾讯与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的方法意味着被销毁,则不入栈。


 

  • 大小: 77.2 KB
  • 大小: 72.8 KB
  • 大小: 58.3 KB
  • 大小: 9 KB
  • 大小: 14.2 KB
  • 大小: 15.5 KB
  • 大小: 15.4 KB
  • 大小: 115.4 KB
  • 大小: 12.9 KB
  • 大小: 9 KB
  • 大小: 16.3 KB
1
1
分享到:
评论

相关推荐

    Activity生命周期与启动模式

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

    Activity生命周期演示

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

    Activity生命周期示例

    在Android应用开发中,Activity是用户界面的基本单元,它负责展示...在提供的`Activity_04`文件中,可能包含了演示这些生命周期方法变化的代码示例,通过学习和分析这些示例,开发者可以加深对Activity生命周期的理解。

    测试Activity生命周期

    "测试Activity生命周期"的DEMO旨在帮助开发者直观地了解和调试Activity在不同场景下的状态变化。在这个DEMO中,我们可以通过观察日志输出或使用Android Studio的调试工具来跟踪Activity的状态。 Activity的生命周期...

    2020-实验1-Activity生命周期验证(已完成)1

    Activity生命周期的理解和管理对于编写高效、响应式的Android应用至关重要。本实验旨在深入探索Activity的生命周期,并通过实践来理解各个阶段的工作流程以及它们之间的转换。 首先,我们来看一下Activity的生命...

    Activity生命周期图

    很好的一张Activity生命周期图,可以很清楚了解Activity生命周期的流程图

    activity生命周期

    这是Activity生命周期的第一个回调,通常在这里进行初始化工作,如设置布局、数据绑定等。 2. **启动(Started)**:`onStart()`方法标志着Activity可见但可能不完全在前台。用户可以看到Activity,但不能与其交互...

    Activity生命周期分析

    这是Activity生命周期中的活跃状态。 - `onPause()`:当Activity即将被另一个Activity覆盖,但仍然部分可见时,系统调用`onPause()`。在此方法中,你应该保存临时数据,但不应执行耗时操作,因为它会影响新Activity...

    Android activity生命周期示例

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

    Activity生命周期完美呈现

    在"Activity生命周期完美呈现"的项目中,开发者可以创建一个简单的Activity,通过Log输出或可视化的方式,展示Activity在不同状态间的转换,这样可以直观地看到每个生命周期方法的调用顺序,加深理解。 总之,理解...

    Activity生命周期demo

    谷歌官方提供的Activity生命周期示例("Activity lifecycle demo")是一个实用的教学工具,帮助开发者直观地理解Activity在不同情况下的状态变化。 这个demo最初是基于Eclipse开发的,但已经转化为更适合现代开发...

    activity生命周期函数

    7. onDestroy():Activity即将被销毁时调用,这是Activity生命周期的最后阶段。在此阶段,可以做彻底的清理工作,例如关闭数据库连接、取消定时任务等。 二、Activity与Fragment的生命周期 Fragment是Android 3.0...

    android activity 生命周期详细介绍

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

    Activity生命周期总结

    ### Activity 生命周期总结 在 Android 开发中,理解 Activity 的生命周期是非常重要的,因为它直接影响到应用程序的行为、性能以及用户体验。本文将详细介绍 Activity 生命周期中的各个方法及其触发条件,并通过...

    Activity生命周期源代码

    了解Activity的生命周期是每个Android开发者必备的知识。Activity的生命周期由一系列的方法组成,这些方法会在特定时刻被系统调用,例如当Activity创建、启动、暂停、恢复或销毁时。通过分析Activity的源代码,我们...

    Activity生命周期Demo

    在深入探讨Activity生命周期之前,我们先理解一下Activity的基本概念。Activity代表一个可视化的用户界面,它可以是手机屏幕上的一个完整窗口,也可以是多个窗口的一部分。在用户与应用的交互过程中,Activity会经历...

    Android Activity生命周期

    Android Activity 生命周期 Android Activity 生命周期是指 Activity 从创建到销毁的整个过程,该过程中会经历多个状态变化,每个状态变化都会触发相应的回调方法。理解 Activity 生命周期是 Android 开发的基础。 ...

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

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

    android Activity生命周期

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

Global site tag (gtag.js) - Google Analytics