理解android Activity生命周期能让我们更清楚,应用程序运行的过程我们需要给数据保存,后台运行什么时候对线程暂停与恢复。
下面我们先来看看onCreate,onStart,onRestoreInstanceState,onResume,onPause,onSaveInstanceState,onStop,onDestroy。执行过程。
使用开发环境android studio,测试设备红米1
package com.example.xjd.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
// private static final int TAG;//
//应用程序启动的时调用
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化一个Activity并填充UI
Log.i("TAG", "onCreate()");
}
//在onCreate()方法完成后调用,用于恢复UI状态
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
//自activity上次可见之后,只有当系统终止了该Activity时,才会被调用
Log.i("TAG","onRestoreInstanceState()");
}
@Override
public void onRestart() {
//加载改变,知道activity在此进程中已经可见
super.onRestart();
Log.i("TAG","onRestart()");
}
//在可见生存期开始时调用
@Override
public void onStart() {
//Activity快要变成可见的
super.onStart();
Log.i("TAG","onStart()");
}
//Activity变成可见的,处于运行状态
@Override
public void onResume() {
super.onResume();
Log.i("TAG","onResume()");
}
//把UI状态改变保存到savedInstanceState
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
//适合用于保存一些临时性的状态
super.onSaveInstanceState(savedInstanceState);
Log.i("TAG","onSaveInstanceState()");
}
//其他Activity获得用户焦点,(Activity快要暂停了)
@Override
public void onPause() {
super.onPause();
//退到背景画面的状态,例如当电话来时,原本运行的Activity退到背景画面,新出现的界面半遮住原来的Activity画面。
Log.i("TAG","onPause()");
}
//在可见生命期结束时调用,界面消失时调用
@Override
public void onStop(){
//挂起不需要的UI更新、线程或者处理等
//当Activity不可见时,保持所有的编辑或者状态改变,因为在调用这个方法后,进程可能会被终止
super.onStop();
Log.i("TAG","onStop()");
}
//在整个生命周期结束时调用
@Override
public void onDestroy() {
//清理所有的资源,包含结束线程、关闭网络、数据库连接等
super.onDestroy();
Log.i("TAG","onDestroy()");
}
}
1.第一次启动应用程序执行过程onCreate()->onStart()->onResume()
2.按返回键(Back)执行过程onPause()->onStop()->onDestroy()
3.按Home键或者锁屏幕执行过程onPause()->onSaveInstanceState()->onStop()
4.按Back键以后再回原来的应用程序执行过程与第一次启动应用过程一样,因为按Back键调用了OnDestroy(),所以相当于重新启动应用。onCreate()->onStart()->onResume()
5.按Home键后再回原来的应用程序(锁屏后再回原来应用也一样)执行过程onRestart()->onStart()->onResume()
6.如果把应用程序在后台服务停止了,然后在重启应用执行过程onCreate()->onStart()->onRestoreInstanceState()->onResume()
以上就是通过各个事件返回得到执行结果。