Activity的生命周期
最后更新于:2022-04-01 14:43:19
Activity的生命周期体现在下面的6个函数上面:
1)onCreate :Activity被创建的时候调用的方法
2)onStart :Activity变成用户可见的时候调用的方法
3)onResume :界面获取焦点的时候调用的方法
4)onPause :界面失去焦点,控件不能响应点击事件的时候调用的方法
5)onStop :界面不可见的时候调用的方法
6)onDestroy :Activity被销毁的时候调用的方法
Activity的完整生命周期自onCreate到onDestroy方法为止
可视生命周期由onStrart到onStop方法为止
前台生命周期由onResume到onPause方法为止
另外还有一个方法是onRestart方法,当一个Activity由onStop到onStart的时候就会调用onRestart方法
经过测试需要注意的点是:当应用程序点击back键之后它会依次调用onPause,onStop,onDestroy方法
当时如果点击home键之后它会调用onPause和onStop方法,并不会调用onDestroy方法,如果重新进入Activity则这个时候它会调用onRestart方法。这个点非常重要。
下面是我的测试代码,有两个Activity,只贴出第一个Activity:
~~~
package com.example.mytest;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("onCreate");
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
System.out.println("onStart");
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
System.out.println("onResume");
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
System.out.println("onPause");
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
System.out.println("onStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
System.out.println("onDestroy");
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
System.out.println("onRestrat");
}
public void click(View v) {
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
}
}
~~~