您的位置:首页 > 移动开发 > Android开发

Android Activity生命周期详解

2017-04-06 23:51 525 查看
理解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()



以上就是通过各个事件返回得到执行结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息