Activity异常生命周期
-
异常的生命周期是指Activity被系统回收或者当前设备的Configuration发生变化(一般指横竖屏切换)从而导致Activity被销毁重建。异常的生命周期主要分以下两种情况:
【1】相关的系统配置发生改变导致Activity被杀死并重新创建(一般指横竖屏切换)
【2】内存不足导致低优先级的Activity被杀死
1、相关的系统配置发生改变导致Activity被杀死并重新创建(一般指横竖屏切换)
我们先来分析第一种情况,当Activity处于竖屏状态,如果突然旋转屏幕,由于系统配置发生了变化,在默认的情况下,Activity会被销毁并重新创建,当然我们可以人为干预来防止这种情况。在这里首先我们使用上一篇文章的测试代码来验证此过程,代码如下:
package com.cmcm.activitylifecycle;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
Button bt;
/**
* Activity创建时被调用
* @param savedInstanceState
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
LogUtils.e("onCreate is invoke!!!");
bt= (Button) findViewById(R.id.bt);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MainActivity.this,SecondActivity.class);
startActivity(i);
}
});
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
LogUtils.e("onSaveInstanceState is invoke!!!");
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRes