02—android入门_activity的生命周期

本文深入解析Android Activity的三种状态及对应方法回调,包括创建、启动、恢复、暂停、停止和销毁过程,通过代码实例展示各阶段的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

02android入门_activity的生命周期

1Activity的三个状态简介

1)当它在屏幕前台时(位于当前任务堆栈的顶部),它是激活或运行状态。它就是响应用户操作的Activity

2)当它失去焦点但仍然对用户可见时,它处于暂停状态。即在它之上有另外一个Activity。这个Activity也许是透明的,或者没有完全覆盖全屏,所以被暂停的Activity仍对用户可见。暂停的Activity仍然是存活状态(它保留着所有的状态和成员信息并保持和窗口管理器的连接),但系统处于极低内存时仍然可以杀死这个Activity

3)完全被另一个Activity覆盖时则处于停止状态。它仍然保留所有的状态和成员信息。然而对用户是不可见的,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个Activity

 

2Activity调用的方法

Activity从一种状态转变到另一种状态时,会调用以下保护方法来通知这种变化:

void onCreate(Bundle savedInstanceState)——创建Activity时被回调方法(只会被调用一次)

void onStart()——启动Activity时被回调的方法

void onRestart()——重新启动Activity时被回调的方法

void onResume()——恢复Activity时被回调的方法

void onPause()——暂停Activity时被回调的方法

void onStop()——停止Activity时被回调的方法

void onDestroy()——销毁Activity时被回调的方法(只会被调用一次)

 

3Activity生命周期的分析

 

1)完整生命周期

1、当进入activity界面时,调用onCreate、onStart、onResume方法

2、当按下“后退”时,调用onPause、onStop、onDestroy方法

2)可视化生命周期 

3、当首次进入activity时,调用onCreate、onStart、onResume方法

4、当按下“home”时,调用onPause、onStop方法

5、当再次进入activity时,调用onRestart、onStart、onResume方法

重复4和5的步骤

3)前台生命周期 

6、通过打开对话框(通过theme设置),调用onResume、onPause方法

重复6的步骤

 

4、Activity生命周期举例,请仔细阅读:

 

package www.youkuaiyun.com.activityb;

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

public class MainActivity extends Activity {
	
	private static final String TAG="MainActivity";

	//创建Activity时被回调方法(只会被调用一次)
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Log.i(TAG,"----onCteate-----");
	}
	
	//启动Activity时被回调的方法
	@Override
	protected void onStart() {
		super.onStart();
		Log.i(TAG,"----onStart-----");
	}
	
	@Override
	protected void onRestart() {
		super.onRestart();
		Log.i(TAG,"----onRestart-----");
	}

	//恢复Activity时被回调的方法
	@Override
	protected void onResume() {
		super.onResume();
		Log.i(TAG,"----onResume-----");
	}

	//暂停Activity时被回调的方法
	@Override
	protected void onPause() {
		super.onPause();
		Log.i(TAG,"----onPause-----");
	}
	
	//停止Activity时被回调的方法
	@Override
	protected void onStop() {
		super.onStop();
		Log.i(TAG,"----onStop-----");
	}
	
	//销毁Activity时被回调的方法(只会被调用一次)
	@Override
	protected void onDestroy() {
		super.onDestroy();
		Log.i(TAG,"----onDestory-----");
	}

	public void openDialog(View v){
		
		//对象链式操作
		new AlertDialog.Builder(this).setTitle("我是对话框").setMessage("你是否真的要退出?")
				.setIcon(R.drawable.ic_launcher)
				.setPositiveButton("确定", new OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						Toast.makeText(MainActivity.this, "点击了确定",
								Toast.LENGTH_LONG).show();
					}
				}).setNeutralButton("中立", new OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						Toast.makeText(MainActivity.this, "点击了中立",
								Toast.LENGTH_LONG).show();
					}
				}).setNegativeButton("取消", new OnClickListener() {

					@Override
					public void onClick(DialogInterface dialog, int which) {
						Toast.makeText(MainActivity.this, "点击了取消",
								Toast.LENGTH_LONG).show();
					}
				}).create().show();
	}
	public void openActivity(View v){
		Intent intent=new Intent();
		intent.setClass(this, SecondActivity.class);
		startActivity(intent);
	}
}


5、结果显示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值