Activity生命周期

Activity是一个用来提供用户交互界面的组件,它是四大组件之一,对于我们刚刚学习android的菜鸟来说是非常重要的,我们可以将一个屏幕理解为一个ActivityActivity通常是一个全屏的界面,每一个应用程序可以有一个或多个Activity,这里需要注意的是每一个Android应用都需要有一个入口Activity,也就是“MainActivity”,它作为程序的入口,就像Java应用中的main()方法一样,当然与javamain()方法的名称特定性不同,Android中入口Activity的名称可以由程序员自行定义,只是需要在项目配置文件AndroidManifest.xml中将其配置为入口Activity即可。

它也同一个线程一样是有生命周期的,下面看一下它的生命周期:

174912521.jpg

Activity共有以上7中状态,下面看以代码来理解各种状态之间的转化

   MainActivity.java

下面看一下主要的代码:
public class MainActivity extends Activity {private Button btn;/**Activity四种状态*  1运行态*  2暂停态*  3停止态*  4终止态*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("1----onCreate");btn = (Button) findViewById(R.id.button1);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Intent i = new Intent(MainActivity.this,Act2.class);startActivity(i);}});}@Overrideprotected void onStart() {System.out.println("1----onStart");super.onStart();/*Log.i("1", "info");Log.d("2", "debug");Log.v("3", "verbose");Log.e("4", "error");Log.w("5", "warning");*/}@Overrideprotected void onResume() {System.out.println("1---onResume");super.onResume();}@Overrideprotected void onPause() {System.out.println("1----onPause");super.onPause();}@Overrideprotected void onStop() {System.out.println("1---onStop");super.onStop();}@Overrideprotected void onRestart() {System.out.println("1---onRestart");super.onRestart();}@Overrideprotected void onDestroy() {System.out.println("1---onDestroy");super.onDestroy();}
}

Act2.java

public class Act2 extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {setContentView(R.layout.act2);super.onCreate(savedInstanceState);System.out.println("2---onCreate");}@Overrideprotected void onStart() {System.out.println("2----onStart");super.onStart();/*Log.i("1", "info");Log.d("2", "debug");Log.v("3", "verbose");Log.e("4", "error");Log.w("5", "warning");*/}@Overrideprotected void onResume() {System.out.println("2---onResume");super.onResume();}@Overrideprotected void onPause() {System.out.println("2----onPause");super.onPause();}@Overrideprotected void onStop() {System.out.println("2---onStop");super.onStop();}@Overrideprotected void onRestart() {System.out.println("2---onRestart");super.onRestart();}@Overrideprotected void onDestroy() {System.out.println("2---onDestroy");super.onDestroy();}
}

另外两个配置文件的代码如下:

MainActivity.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello_world" /><Buttonandroid:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignTop="@+id/textView1"android:layout_marginLeft="72dp"android:layout_toRightOf="@+id/textView1"android:text="BUTTON" />
</RelativeLayout>
act2.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World" />
</LinearLayout>

运行结果如下:

175426822.jpg  

175428282.jpg

运行时状态如下所示:

spacer.gif175844332.jpg