首先看一下Androidapi中所提供的Activity生命周期图:


android 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    }   //在可见生存期的开始时调用@Overrideprotected void onStart() { Log.e(TAG, "onStart()");super.onStart();//既然活动可见,就应用任何要求的UI活动} //在随后的活动进程可见生命周期之前调用@Overrideprotected void onRestart() { Log.e(TAG, "onRestart()");super.onRestart();//加载活动可见,知道活动在此进程中已经可见}//在活动状态生存期开始调用@Overrideprotected void onResume() {Log.e(TAG, "onResume()");super.onResume();//恢复活动需要,但是当它处于不活动状态时被挂起的暂停的UI更新,线程或进程}//在活动生命周期结束的时候调用,用来保存UI状态的改变@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);//把UI改变状态保存到outState//如果进程被终止并被启动,那么这个Bundle将被传递给onCreate}//在活动状态生存期结束时调用@Overrideprotected void onPause() {Log.e(TAG, "onPause()");//当活动不是前台的活动状态的活动时//挂起不需要更新的UI更新,线程或者CPU密集的进程super.onPause();}//在可以生存期结束时调用@Overrideprotected void onStop() {Log.e(TAG, "onStop()");//当活动不可见时,挂起不需要的UI更新,线程或处理//保存所有的编辑或者状态改变,因为在调用这个方法后,进程可能就会被终止super.onStop();}//在完整生存周期结束时调用@Overrideprotected 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方法。

可见生存期:

一个活动的可见生存期是指调用onStartonStop之间的那段时间。在这个时间里,活动对用户是可见的,但是它有可能不具有焦点,或者它可能被部分遮住了。

活动生存期:

活动生存期是指调用onResumeonPause之间的那段时间。一个处于活动状态的活动是前台的,并且正在接收用户的输入事件。注意,尽量让onResumeonPause中的代码执行迅速,并且其中的代码尽可能的少,以保证在前台和后台之间进行切换的时候应用能够保持响应。

下面为生命周期的执行过程函数的调用:


1.启动过程:onCreate()->onStart()->onResume();如下图:




2.销毁过程:onPause->onStop()->onDestroy();




3.不销毁跳转到第二个Activity过程:onPause->onStop();




4.再从第二个activiy返回第一个Activity(在第一个Activity没有销毁的情况下)的过程:

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




5.按下home键执行的过程:onPause()->onStop();


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

6.按下返回键执行的过程:onPause()->onStop()->onDestroy();




OK就这么简单,还不懂的大家写一个项目自己测试慢慢摸索,基本上懂了这几个生命周期的过程对,Activiy的灵活使用开发应该没什么问题了。

下面再附上测试图:

第一个Activity如下:


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

第二个activiy:


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

下面把本实例的代码页附上

更多相关文章

  1. Android Studio使用过程中遇到的问题(一)-- "value 2"异常解决方法
  2. 获取Android状态栏的高度
  3. Android 系统启动过程简略分析
  4. live555移植到Android过程.
  5. Android应用程序中Activity的生命周期
  6. ionic3中android状态栏
  7. Android 中broadcast 注册过程解析
  8. activity生命周期及横竖屏切换

随机推荐

  1. android 获取锁屏,解锁的方法
  2. Android(安卓)app调用第三方地图(百度地图
  3. 【Android】设置代理
  4. Android 使用 DowanloadManager 实现下载
  5. Android 四大组件+五大布局
  6. android 滑动分页
  7. Android audioManager解决MediaPlayer Au
  8. android 获取ip地址,获取2,3,4g,wifi状态等
  9. android 调用系统通讯录添加联系人,并将号
  10. Advanced NDK(Pro Android Apps Performa