1.1 activity/活動-生命週期

活動就是一個包含應用程序的用戶界面窗口。一個應用程序可以包含零個或多個活動。通常,應用程序具有一個或多個活動,活動的主要目的就是與用戶交互。一個活動的生命週期是指從屏幕上顯示那一刻起一直到最後隱藏所經歷的若干階段。

要創建一個活動,需要創建一個擴展Activity基類的Java類。隨後,你自己的活動類將使用在res/layout文件夾下定義的XML文件加載此活動的用戶界面組件。應用程序的每一個活動必須在AndroidMainfest.xml文件中聲明。

Activity基類定義了管理一個活動的生命週期的一系列事件:

  • onCreate()——當活動首次被創建時調用。
  • onStart()——當活動對用戶可見是調用。
  • onResume()——當活動與用戶交互時調用。
  • onPause()——當活動被暫停並恢復以前的活動是調用。
  • onStop()——當活動不再對用戶可見是調用。
  • onDestroy()——在活動被系統銷燬(手動或由系統執行以節省內存)前調用。
  • onRestart()——在活動已經停止並要再次啓動時調用。


想要理解生命週期的各個階段,就是實現各種事件:

package com.example.activity;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;

public class MainActivity extends Activity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d("TAG", "onCreate");
}
@Override
protected void onStart() {
super.onStart();
Log.d("TAG", "onStart");
}
@Override
protected void onResume() {
super.onResume();
Log.d("TAG", "onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.d("TAG", "onPause");
}
@Override
protected void onStop() {
super.onStop();
Log.d("TAG", "onStop");
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
Log.d("TAG", "onDestroy");
}
}


下面是兩個activity切換時調用的生命週期,面試經常被問:

A-B
MainActivity: onPause() 
 ActivityTwo: onCreate()
 ActivityTwo: onStart() 
 ActivityTwo: onResume()
 MainActivity: onStop()
B-A
ActivityTwo: onPause() 
 MainActivity: onRestart() 
 MainActivity: onStart()
 MainActivity: onResume()
 ActivityTwo: onStop()
 ActivityTwo: onDestroy() 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章