关于Activity生命周期的分析

来源:互联网 发布:宝信软件最新消息 编辑:程序博客网 时间:2024/05/21 06:46

首先贴图一张、
官方的activity生命周期图解
我写了一个testdemo。用来测试用户的一些操作记录Activity的生命周期的变化过程。
下面是我demo里面的内容

package com.example.demo96;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.widget.EditText;public class TestHomeActivity extends Activity {    private EditText dt;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_test_home);        dt = (EditText) findViewById(R.id.testcontent);        Log.d("1", "oncreate");    }    @Override    protected void onStart() {        super.onStart();        Log.d("1", "onStart");    }    @Override    protected void onResume() {        super.onResume();        Log.d("1", "onResume");    }    @Override    protected void onRestart() {        super.onRestart();        Log.d("1", "onRestart");    }    @Override    protected void onPause() {        super.onPause();        Log.d("1", "onPause");    }    @Override    protected void onStop() {        super.onStop();        Log.d("1", "onStop");    }    @Override    protected void onDestroy() {        super.onDestroy();        Log.d("1", "onDestroy");    }    @Override    protected void onSaveInstanceState(Bundle outState) {        super.onSaveInstanceState(outState);        Log.d("1", "onSaveInstanceState");    }    @Override    protected void onRestoreInstanceState(Bundle savedInstanceState) {        super.onRestoreInstanceState(savedInstanceState);        Log.d("1", "onRestoreInstanceState");    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.test_home, menu);        return true;    }}

布局内容很简单,就只有一个edittext。

一、按下back键。
按下back键,也就是说退出当前的activity退回到之前的activity。然后再按下按钮,跳回测试的activity。
看看在logcat里面将会打印什么内容。
按下back键

二、手机熄屏时
此时我手机界面是当前测试的activity。我没有进行操作。然后手机自动熄屏了。手机熄屏时

三、按下home键
如果我在edittext中输入了值,如果我此时我按下home键,然后在再后台打开这个app。此时,edittext的值并没有发生任何变化。那我们看看他的生命周期发生了什么变化吧。
按下home键

四、关于横竖切屏,edittext的值并不发生改变。他是调用了哪个方法捏?

0 0