Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android--Activity的生命周期(一)

Android--Activity的生命周期(一)

編輯:關於Android編程

1、Activity的創建過程

1、1 創建一個Activity

創建一個Class繼承自Activity 重寫onCreate()方法,設置布局 在AndroiManifest.xml文件中注冊該Activity

1、2 Activity7個重要方法

onCreate – 首次創建時調用 onStart – 啟動時 onResume – 獲得焦點時 onPause – 轉入其它Activity或者休眠等 onStop – 當前activity不可見時 onRestart – 重新啟動時 onDestory – 銷毀時

2、單個Activity生命周期

為了證實結論正確,我們新建一個Activity命名為Fisrt,並重寫上述7個方法。並在每個方法中打印出當前調用的方法。代碼如下:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("First onCreate");
    }
    @Override
    protected void onStart() {
        System.out.println("First onStart");
        super.onStart();
    }

    @Override
    protected void onResume() {
        System.out.println("First onResume");
        super.onResume();
    }

    @Override
    protected void onPause() {
        System.out.println("First onPause");
        super.onPause();
    }

    @Override
    protected void onStop() {
        System.out.println("First onStop");
        super.onStop();
    }

    @Override
    protected void onRestart() {
        System.out.println("Fisrt onRestart!");
        super.onRestart();
    }

    @Override
    protected void onDestroy() {
        System.out.println("First onDestory!");
        super.onDestroy();
    }

現在我們首次啟動Activity發現輸出為:

First onCreate
First onStart
First onResume

當我們點擊Home,回到主界面時,輸出為:

First onPause
First onStop

在點擊程序,回到程序,輸出為

First onRestart
First onStart
First onResume

在點擊back,輸出為

First onPause
First onStop
Fisrt onDestory

上述輸出可以明顯看出啟動過程,就不多敘述了。

3、多個Activity生命周期

這裡創建兩個Activity,分別為First和Second,2個以上的,其實都是一樣的。
我們在第一個activity中添加了個button,當點擊button時,使用Intent跳轉到Second,
跳轉代碼:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        System.out.println("First onCreate");
        Button btn = (Button)findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {

                Intent intent = new Intent();
                intent.setClass(MainActivity.this,SecondActivity.class);
                startActivity(intent);
            }
        });
    }

怎麼添加Button控件,就不闡述了。
下面我們啟動應用程序,即進入到了first activity中。根據2所說,輸出順序應該為:

first onCreate
first onStart
first onResume

然後我們點擊Button跳轉到second activity中,輸出為:

first onPause
second onCreate
second onStart
second onResume
first onStop

這時候活動的為second activity,所以此時進行home操作,和上面的一樣。
如果我們這時點擊了back退回到,則輸出為

second onPause
first onRestart
first onStart
first onResume
second onStop
second onDestory

這時second activity已經destroy掉了,如果再進入就不是和上面的一樣了,而是重新創建一個新的Activity了,再次跳轉到second activity,則輸出為:

first onPause
second onCreate
second onStart
second onResume
first onStop

4、總結

上面的程序輸出已經把調用順序,解釋的很清楚了。建議大家,自己重載那7個函數,然後自己啟動,實驗一下增加下理解。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved