前幾天的文章簡略學習了如何設定或啟動一個activity,今天來更深入的學習activity的整個運作流程。同樣參考官網教學文,Activity life cycle。
Activity其中一重要功能就是各式各樣的callback function。例如一個播影片的APP,當使用者換去別的APP,影片應該要暫停;當使用者換回該APP,影片就應該繼續播放。而這些都需要callback function的幫忙才能完成。
而在呼叫這些callback function的時候,應注意以下事項:
除了onCreate()之外,其他callback不一定都需要實作callback。
例如最簡單的hello world程式,就只實作了onCreate(),如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) { // Bundle是上次儲存狀態
Log.d("[MainActivity]","Bundle:"+savedInstanceState); // 第一次啟動savedInstanceState是null
super.onCreate(savedInstanceState); // 呼叫super的onCreate,讓一系列的activity建立更完整
// Ex. view hierarchy
setContentView(R.layout.activity_main); // 設定view為資源中的layout
}
}
R.layout.activity_main是xml檔案,如下圖:
這裡提到一個新名詞,view hierarchy,代表UI上的view的樹狀結構,可使用Android Studio的Layout Inspector小工具來看詳細內容。
開啟方式:先啟動APP,然後工具列上按 Tools > Layout Inspector
就可以看到UI上各個元件在view hierarchy上的位置,還有元件的各種屬性,如下圖: