Android Activity生命周期

来源:互联网 发布:js合并数组中的集合 编辑:程序博客网 时间:2024/05/21 17:24

什么是生命周期?个人认为生命周期就是Activity会根据自身状态的不同会调用不同的方法,比如说页面启动的时候会调用onCreate()方法所以可以在这个方法里进行数据的初始化,页面销毁的时候会调用onDestory()方法所以在这个方法里可以保存我们不想销毁的数据,所以我们需要了解生命周期。

Activity生命周期方法常用的大概有这么几个 创建onCreate(), 开始onStart(), 暂停onPause(), 继续onResume(), 停止onStop(), 销毁onDestroy()等方法,顾名思义,我们有时候可以直接根据方法名字来判断activity会调用哪些方法,但是页面状态改变的时候,这些方法是按照怎么样的顺序来进行的呢?我们可以写一个Activity来进行测试,调用某个方法的时候就打印出来。

MainActivityLife.java

package android.basic;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivityLife extends Activity {String tag ="MainActivityLife";    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        Log.i(tag, "onCreate");                Button button = (Button) findViewById(R.id.button);        button.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {Intent intent = new Intent(MainActivityLife.this,SecondActivity.class);MainActivityLife.this.startActivity(intent);//finish();//不销毁页面}        });    }        @Override    public void onStart(){    super.onStart();    Log.i(tag, "onStart");    }        @Override    public void onPause(){    super.onPause();    Log.i(tag, "onPause");    }        @Override    public void onResume(){    super.onResume();    Log.i(tag, "onResume");    }        @Override    public void onStop(){    super.onStop();    Log.i(tag, "onStop");    }        @Override    public void onDestroy(){    super.onDestroy();    Log.i(tag, "onDestroy");    }    }


接下来我们就可以进行测试了。

1、首先,我们打开Activity,我们可以在logcat里查看打印的信息。

2、然后我们按返回键(返回键跟Home键是有区别的),我们得到的信息如下图。


3、接下来我们试试Home建效果。先关闭掉整个程序重新开始,打开Activity,然后按Home键。得到的打印信息如下。(我把打开activity的打印信息过滤了)


4、再点app重新打开activity。我们得到的打印信息如下。

5、我们再看看页面跳转时生命周期是怎样的。主页面有个按钮,点击按钮跳转到第二个页面。打印信息如下。


6、从第二页返回到第一页的生命周期呢?我们点返回按钮,返回到第一页。打印信息如下。


通过上面打印的信息,我们可以总结一下,进行各种改变activity状态的操作时,activity的生命周期是怎么进行的。可以总结成下面的图表。

(其中说的页面跳转是不销毁当前页面的)



0 0
原创粉丝点击