Activity生命周期

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

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

androidActivity生命周期_第1张图片

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

   MainActivity.java

下面看一下主要的代码:
public class MainActivity extends Activity {
    private Button btn;
    /*
     *Activity四种状态
     *  1运行态
     *  2暂停态
     *  3停止态
     *  4终止态
     */
    @Override
    protected 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() {
                                                                                                                
            @Override
            public void onClick(View arg0) {
                Intent i = new Intent(MainActivity.this,Act2.class);
                startActivity(i);
                                                                                                                    
            }
        });
    }
                                                                                                        
    @Override
    protected 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");*/
                                                                                                            
    }
                                                                                                        
    @Override
    protected void onResume() {
        System.out.println("1---onResume");
        super.onResume();
    }
    @Override
    protected void onPause() {
        System.out.println("1----onPause");
        super.onPause();
    }
    @Override
    protected void onStop() {
        System.out.println("1---onStop");
        super.onStop();
    }
    @Override
    protected void onRestart() {
        System.out.println("1---onRestart");
        super.onRestart();
    }
    @Override
    protected void onDestroy() {
        System.out.println("1---onDestroy");
        super.onDestroy();
    }
}

Act2.java

public class Act2 extends Activity{
                                                                                         
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        setContentView(R.layout.act2);
        super.onCreate(savedInstanceState);
        System.out.println("2---onCreate");
                                                                                             
                                                                                             
    }
    @Override
    protected 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");*/
                                                                                             
    }
                                                                                         
    @Override
    protected void onResume() {
        System.out.println("2---onResume");
        super.onResume();
    }
    @Override
    protected void onPause() {
        System.out.println("2----onPause");
        super.onPause();
    }
    @Override
    protected void onStop() {
        System.out.println("2---onStop");
        super.onStop();
    }
    @Override
    protected void onRestart() {
        System.out.println("2---onRestart");
        super.onRestart();
    }
    @Override
    protected void onDestroy() {
        System.out.println("2---onDestroy");
        super.onDestroy();
    }
}

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

MainActivity.xml

    
    
act2.xml


    

运行结果如下:

androidActivity生命周期_第2张图片  

androidActivity生命周期_第3张图片

运行时状态如下所示:

androidActivity生命周期_第4张图片