Activity的生命週期函數

來源:互聯網
上載者:User

標籤:android   activity   

說明:初探activity 生命週期的7個函數。

例子:在MainActivity裡面添加一個按鈕,觸動按鈕,跳轉到OtherActivity,觀察控制台的輸出。

先來看看這幾個函數:


他們的流程可以看看官網提供的流程圖:


下面這張金字塔型的圖可能更直觀一些:


關看圖沒意思,看看程式運行起來的效果先。

步驟:1、在MainActivity裡面複寫其他6個函數。並且定義一個OtherActivity類,在activity_main添加一個按鈕,跳轉到OtherActivity,並為OtherActivity定義一個布局檔案Other.xml。(這個在上一篇已經說過方法了,在這裡就不再重複了。)

package com.away.b_02_lifecycle;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity {private Button button; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);button = (Button) findViewById(R.id.Button);button.setOnClickListener(new ButtonListener());System.out.println("MainActivity:OnCreate");}class ButtonListener implements OnClickListener {@Overridepublic void onClick(View v) {Intent intent = new Intent();intent.setClass(MainActivity.this, OtherActivity.class);startActivity(intent);}}@Overrideprotected void onDestroy() {super.onDestroy();System.out.println("MainActivity:onDestroy");}@Overrideprotected void onPause() {super.onPause();System.out.println("MainActivity:onPause");}@Overrideprotected void onRestart() {super.onRestart();System.out.println("MainActivity:onRestart");}@Overrideprotected void onResume() {super.onResume();System.out.println("MainActivity:onResume");}@Overrideprotected void onStart() {super.onStart();System.out.println("MainActivity:onStart");}@Overrideprotected void onStop() {super.onStop();System.out.println("MainActivity:onStop");}}
2、在OhterActivity裡面也複寫7個函數。

直接看結果:直接在控制台觀察,啟動MainActivity→OtherActivity的過程,函數的調用時機。

啟動MainActivity:


點擊按鈕,跳轉到OtherActivity:


當點擊後退按鈕,退回到MainActivity的時候:


這裡涉及到back stack:

1、啟動第一個Activity,backstack裡面就有了第一個Activity對象。


2、啟動第二個Activity,backstack裡面增加了第二個Activity對象。


3、啟動第三個Activity,backstack裡面增加了第三個Activity對象。如果按返回鍵,返回到第二個Activity,那麼,在backstack裡面第三個Activity對象就會被銷毀。以此類推,backstack遵循先進先出的順序。


寫完了。深夜寫的,原創不易,轉載標明出處~~晚安。





Activity的生命週期函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.