首先看一下Android api中所提供的Activity生命周期图:
第一:一个Activity正常的生命周期冲启动到销毁过程如下:onCreate()->onStart()->onResume()->onPause->onStop()->onDestroy();
代码如下:
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 MainActivity extends Activity implements OnClickListener{
private String TAG ="Activity1";
private Button btn1,btn2,btn3;
//在完成生命周期开始时调用
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//初始化一个活动
Log.e(TAG, "onCreate()");
setContentView(R.layout.activity_main);
btn1 = (Button) this.findViewById(R.id.btn1);
btn2 = (Button) this.findViewById(R.id.btn2);
btn3 = (Button) this.findViewById(R.id.btn3);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
}
//在onCreate方法完成后调用,用于恢复UI状态
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//从savedInstanceState恢复UI状态
//这个Bundle也被传递给了onCreate
}
//在可见生存期的开始时调用
@Override
protected void onStart() {
Log.e(TAG, "onStart()");
super.onStart();
//既然活动可见,就应用任何要求的UI活动
}
//在随后的活动进程可见生命周期之前调用
@Override
protected void onRestart() {
Log.e(TAG, "onRestart()");
super.onRestart();
//加载活动可见,知道活动在此进程中已经可见
}
//在活动状态生存期开始调用
@Override
protected void onResume() {
Log.e(TAG, "onResume()");
super.onResume();
//恢复活动需要,但是当它处于不活动状态时被挂起的暂停的UI更新,线程或进程
}
//在活动生命周期结束的时候调用,用来保存UI状态的改变
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//把UI改变状态保存到outState
//如果进程被终止并被启动,那么这个Bundle将被传递给onCreate
}
//在活动状态生存期结束时调用
@Override
protected void onPause() {
Log.e(TAG, "onPause()");
//当活动不是前台的活动状态的活动时
//挂起不需要更新的UI更新,线程或者CPU密集的进程
super.onPause();
}
//在可以生存期结束时调用
@Override
protected void onStop() {
Log.e(TAG, "onStop()");
//当活动不可见时,挂起不需要的UI更新,线程或处理
//保存所有的编辑或者状态改变,因为在调用这个方法后,进程可能就会被终止
super.onStop();
}
//在完整生存周期结束时调用
@Override
protected void onDestroy() {
Log.e(TAG, "onDestroy()");
//清理所有资源,包括结束线程,关闭数据库连接等
super.onDestroy();
}
public void onClick(View v) {
if(v==btn1){
startActivity(new Intent(this,Activity2.class));
}else if(v==btn2){
startActivity(new Intent(this,Activity2.class));
finish();
}else if(v==btn3){
finish();
}
}
}
完整生存期:
活动完整生存期是指对onCreate方法第一次调用和对onDestory方法的最后一次嗲用之间的时间范围。在某种情况下,还有另一种可能,即一个活动的进程被终止,却没有调用onDestory方法。
可见生存期:
一个活动的可见生存期是指调用onStart和onStop之间的那段时间。在这个时间里,活动对用户是可见的,但是它有可能不具有焦点,或者它可能被部分遮住了。
活动生存期:
活动生存期是指调用onResume和onPause之间的那段时间。一个处于活动状态的活动是前台的,并且正在接收用户的输入事件。注意,尽量让onResume和onPause中的代码执行迅速,并且其中的代码尽可能的少,以保证在前台和后台之间进行切换的时候应用能够保持响应。
下面为生命周期的执行过程函数的调用:
1.启动过程:onCreate()->onStart()->onResume();如下图:
2.销毁过程:onPause->onStop()->onDestroy();
3.不销毁跳转到第二个Activity过程:onPause->onStop();
4.再从第二个activiy返回第一个Activity(在第一个Activity没有销毁的情况下)的过程:
onRestart()->onStart()->onResume();
5.按下home键执行的过程:onPause()->onStop();
6.按下返回键执行的过程:onPause()->onStop()->onDestroy();
OK就这么简单,还不懂的大家写一个项目自己测试慢慢摸索,基本上懂了这几个生命周期的过程对,Activiy的灵活使用开发应该没什么问题了。
下面再附上测试图:
第一个Activity如下:
第二个activiy:
下面把本实例的代码页附上
- 大小: 50.1 KB
- 大小: 4.6 KB
- 大小: 16 KB
- 大小: 12.6 KB
- 大小: 14.2 KB
- 大小: 13.2 KB
- 大小: 16.8 KB
- 大小: 25.4 KB
- 大小: 25.4 KB
分享到:
相关推荐
Android_Activity生命周期详解(图文)。。。
两分钟彻底让你明白Android Activity生命周期(图文)
AndroidActivity生命周期(图文)![归纳].pdf
详尽解释 android 里的Activity的生命周期问题,攻克开发android程序中的难题
详细描述 Android四大控件之一的Activity的生命周期,以及使用注意事项
Android Activity生命周期演示源码,从第一个Activity到第二个Activity,Android Activity形象的说就是一个容器,在里面放置各种控件(按钮,文本,复选框等),就形成了软件的界面~ Activity是可见的。
有助于深入了解Android Activity生命周期的测试代码,可以结合博客http://blog.csdn.net/freetangxiaoying/article/details/17167819领悟。
描述 Android Activity生命周期之间的关系
Android Activity 生命周期
演示Android activity的小工程,对应博文地址:http://blog.csdn.net/djstavaV/article/details/48809135
android activity生命周期实例,利用切换横竖屏来演示
android activty 生命周期 详细介绍
Android Activity生命周期Demo源码.rar
android activity生命周期示例代码。里面包含activity执行finish之后的生命周期,旋转的生命周期。切换以及返回activity的生命周期。我的博客地址:http://blog.csdn.net/qq_16064871
Android 生命周期详解,前台周期 全部周期 区分
Android Activity生命周期测试程序,可以用作Android开发辅助小工具。
日志追踪(完成以下六步、明白android的四种状态的生命周期和相互切换): 1、启动app、查看控制台输出,发现依次触发onCreate、onStart、onResume这三个方法 2、点击按钮(弹窗风格的Activity),控制台输出onPause...
Activity 的生命周期。 一、理解Activity Activity是Android程序的4大组件之一。 Activity是Android程序的表示层。程序的每一个显示屏幕就是一个Activity。 学过WEB开发的同学,可以把Activity理解成网页中的一个...
Activity7大生命周期与4种启动模式(standard,singleTop,singleTask,singleIntance)