【Android开发-7】生命周期,Activity的生老病死

前言:生老病死,是每个人都要经历的事情。所以不必惊慌,静下心,想想自己在人生所处的每个阶段该做些什么,才能让自己的人生价值提高,或者说自身价值提高。在一个生命周期里,某个阶段该完成的事,没完成,也许就会影响到整个生命周期。所以有时候人生不能堕落,一堕落也许许多美好的事情就会错过了,等待你的就只有无声的忏悔!


对于Activity的生命周期的流程,最经典的一张图如下:



1.一个Activity A启动时,它会经历下面各个阶段:

onCreate()-->onStart()-->onResume()

2.当另外一个Activity B正在被打开,Activity A还可以看见时,经历的阶段:

onPause()

3.当另外一个Activity B被打开,Activity A看不见时,经历的阶段:

onStop()

4.当Activity B关闭,回到Activity A时,经历的阶段:

onRestart()-->onStart()-->onResume()

5.当Activity A关闭后,经历的阶段:

onDestroy()

6.或者当当Activity A处于onPause和onStop状态时,当更高优先级的apps需要内存,此时系统内存不够,那么android系统就会将ctivity A所在的进程给杀了以释放资源,这样就又回到1中的阶段


注:每个Activity简单说就是一个界面,用界面理解上面就比较简单。


折腾个例子理解下:

1、创建一个项目TestActivity,建完如下:


2、在项目文件src->MainActivity.java中编写代码如下:

package com.wyz.testactivity;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

	private static final String TAG="ActivityDemo";
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		Log.d(TAG, "生命周期--创建阶段(onCreate)");
	}
	
	protected void onStart()
	{
		super.onStart();
		Log.d(TAG, "生命周期--开始阶段(onCreate)");
	}
	
	protected void onResume()
	{
		super.onResume();
		Log.d(TAG, "生命周期--恢复阶段(onResume)");
	}
	protected void onPause()
	{
		super.onPause();
		Log.d(TAG, "生命周期--暂停创建阶段(onPause)");
	}
	
	protected void onStop()
	{
		super.onStop();
		Log.d(TAG, "生命周期--停止创建阶段(onStop)");
	}
	
	protected void onRestart()
	{
		super.onRestart();
		Log.d(TAG, "生命周期--重启阶段(onRestart)");
	}
	
	protected void onDestory()
	{
		super.onDestroy();
		Log.d(TAG, "生命周期--销毁阶段(onDestory)");
	}
}

注:上面主要重载了Activity的下面几个方法:

protected void onCreate(Bundle savedInstanceState);        
protected void onStart();           
protected void onRestart();        
protected void onResume();       
protected void onPause();        
protected void onStop();        
protected void onDestroy();


3.编译运行程序到模拟器,开始演示上面的打印信息

a.程序一运行起来,打印结果如下:


从上面可以看出程序一运行的Activity生命周期经历顺序。


b.我们接着按HOME键模拟跳到另外一个界面,即回到Android主界面,运行结果如下:


从结果来看,当按HOME键跳到另外一个界面时,生命周期先onPause()再到onStop()


c.接着在程序应用列表点本程序重新运行,让它重新显示界面,结果如下:


从显示结果,可以分析出,此时生命周期是先onRestart()-->onCreate()-->onResume()


d.最后就是当程序要关闭时,就执行onDestory; 本人苹果电脑,找不到后退键back,所以没演示到onDestroy()。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值