Android Activity生命周期


这篇文章主要学习Android activity的生命周期

 

 

 

 

 一、Activity的启动

 

onCreate()——>onStart()——>onResume()

 1、 onCreate(Bundle savedInstanceState)
     当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。
     savedInstanceState    该参数可以为空( null ),也可以是之前调用 onSaveInstanceState ()方法保存的状态信息

 

 2、 onStart()     
     该方法的触发表示所属活动将被展现给用户

 

 3、 onResume()     
      当一个活动和用户发生交互的时候,触发该方法

二、Activity的销毁:

 

onPause()——>onStop()——>onDestroy()

 

4、onPause()

当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等

 

5、onStop()

当一个活动不再需要展示给用户的时候,触发该方法。 如果内存紧张,系统会直接结束这个活动,而不会触发 onStop 方法。
所以保存状态信息是应该在onPause时做,而不是onStop时做。
活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。
因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。
在一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息


6、onDestroy()
当活动销毁的时候,触发该方法。 和 onStop 方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法

 

 

三、Activty的生命周期的就是它所在进程的生命周期。

 


 

 

 

 

 

 

/**
* activity 生命周期学习
* Activty的生命周期的就是它所在进程的生命周期。
*
* 应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。
* Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。
*/
public class StudyActivity extends Activity {


/**
* 当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。
* @param savedInstanceState 该参数可以为空( null ),也可以是之前调用 onSaveInstanceState ()方法保存的状态信息。
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_study);//
}

/**
* 当处于停止状态的活动需要再次展现给用户的时候,触发该方法
*/
@Override
protected void onRestart() {
super.onRestart();
}

/**
* 该方法的触发表示所属活动将被展现给用户
*/
@Override
protected void onStart() {
super.onStart();
}

/**
* 当一个活动和用户发生交互的时候,触发该方法
*/
@Override
protected void onResume() {
super.onResume();
}

/**
* 当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。这时候需要将活动的状态持久化,比如正在编辑的数据库记录等
*/
@Override
protected void onPause() {
super.onPause();
}

/**
* 当一个活动不再需要展示给用户的时候,触发该方法。
* 如果内存紧张,系统会直接结束这个活动,而不会触发 onStop 方法。
* 所以保存状态信息是应该在onPause时做,而不是onStop时做。
* 活动如果没有在前台运行,都将被停止或者Linux管理进程为了给新的活动预留足够的存储空间而随时结束这些活动。
* 因此对于开发者来说,在设计应用程序的时候,必须时刻牢记这一原则。
* 在一些情况下,onPause方法或许是活动触发的最后的方法,因此开发者需要在这个时候保存需要保存的信息
*/
@Override
protected void onStop() {
super.onStop();
}

/**
* 当活动销毁的时候,触发该方法。
* onStop 方法一样,如果内存紧张,系统会直接结束这个活动而不会触发该方法
*/
@Override
protected void onDestroy() {
super.onDestroy();
}

/**
* 系统调用该方法,允许活动保存之前的状态,比如说在一串字符串中的光标所处的位置等。
* 通常情况下,开发者不需要重写覆盖该方法,在默认的实现中,已经提供了自动保存活动所涉及到的用户界面组件的所有状态信息
* @param outState
*/
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
}
刚开始写哦,如有不妥望大家多多包含!

 



 


 


 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM