欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

程序员文章站 2024-03-09 16:22:23
...

生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有相应的生命周期,Activity的生命周期分为三种状态,分别是运行状态、暂停状态和停止状态。

1).运行状态

当Activity在屏幕的最前端时,它是可见的。有焦点的,可以用来处理用户的常见操作,如点击、双击、长按事件等,这种状态称为运行状态。

2).暂停状态

在某些情况下,Activity对用户来说仍然是可见的,但它不再拥有焦点,即用户对它的操作是没有实际意义的。例如,当最上面的Activity没有完全覆盖屏幕或者是透明的,被覆盖的Activity仍然对用户可见,并且存活。但当内存不足时,Activity可能会被杀死。

3).停止状态

当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。然而这些对用户来说不可见,内存不足,同样Activity很容易被杀死。

一、Activity的具体方法执行流程

      Activity从一种状态转变到另一种状态会触发一些事件,执行一些回调方法来通知状态的变化,具体方法如下

  • onCreate(Bundle savedInstanceState):创建时执行
  • onStart():可见时执行
  • onRestart():回到前台,再次可见时执行
  • onResume():获取焦点时执行
  • onPause():失去焦点时执行
  • onStop():用户不可见进入后台执行
为了更好的理解,Google公司专门提供一个Activity生命周期模型的图例,具体如下图

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

从上图可以看出,完整生命周期  oncreate-->onstart-->onresume-->onpause-->onstop-->ondestory

二、通过案例查看Activity生命周期

案例采用上一篇的案例,通过Log打印信息

1.编辑上篇中案例的Activity01类和Activity02

package com.example.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class Activity01 extends Activity implements OnClickListener {
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity01);
        Button btn=(Button)findViewById(R.id.btn);
        btn.setOnClickListener(this);
        Log.i("Activity01","onCreate()");
    }
	@Override
	protected void onStart() {
		super.onStart();
		Log.i("Activity01","onStart()");
	}
	@Override
	protected void onRestart() {
		super.onRestart();
		Log.i("Activity01","onRestart()");
	}
	@Override
	protected void onResume() {
		super.onResume();
		Log.i("Activity01","onResume()");
	}
	@Override
	protected void onPause() {
		super.onPause();
		Log.i("Activity01","onPause()");
	}
	@Override
	protected void onStop() {
		super.onStop();
		Log.i("Activity01","onStop()");
	}
	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.i("Activity01","onDestroy()");
	}
	
    public void click(){
    	//创建一个Intent对象,通过该对象开启第2个Activity
    	Intent intent=new Intent(this, Activity02.class);
    	startActivity(intent);
    }

	@Override
	public void onClick(View arg0) {
		click();
	}
}

Activity02类

package com.example.activity;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;


public class Activity02 extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity02);
		Log.i("Activity02","onCreate()");
	}
	@Override
	protected void onStart() {
		super.onStart();
		Log.i("Activity02","onStart()");
	}
	@Override
	protected void onRestart() {
		super.onRestart();
		Log.i("Activity02","onRestart()");
	}
	@Override
	protected void onResume() {
		super.onResume();
		Log.i("Activity02","onResume()");
	}
	@Override
	protected void onPause() {
		super.onPause();
		Log.i("Activity02","onPause()");
	}
	@Override
	protected void onStop() {
		super.onStop();
		Log.i("Activity02","onStop()");
	}
	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.i("Activity02","onDestroy()");
	}
	
	public void click(View view){
    	//创建一个Intent对象,通过该对象开启第2个Activity
    	Intent intent=new Intent(this, Activity01.class);
    	startActivity(intent);
    }
}

2.采用Log过滤器查看Log信息

添加一个过滤器,只显示Activity01的信息

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

先打开应用程序,Log窗口显示如下

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

点击按钮开启Activity02

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

第一种是采用跳转的按钮返回,执行onCreate,onStart,onResume

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程第二种如果用系统的返回按键,在Activity02页面在手机按钮点击返回键

会执行onRestart,onStart,onResume方法

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

回到主页面,执行onPause,onStop方法

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程

结束应用,执行onPause,onStop,onDestroy

Android学习笔记整理(7)--Activity的生命周期和Log窗口查看生命周期流程