TabActivity是Android平台常常被使用的元件,通常Tab裡頭可以內嵌其他的Activity,最直覺的用法就是在TabActivity內直接夠過下列的程式碼在runtime的時候顯示內嵌的Activity
….
final TabHost tabHost = getTabHost();
TabSpec ts1=tabHost.newTabSpec(“tab1″);
ts1.setIndicator(“Downloaded”,getResources().getDrawable(R.drawable.icon32×32)).setContent(
new Intent(this, ItemList.class).putExtra(“channel_id”,
channelID).putExtra(“show_type”,ItemList.TYPE_DOWNLOADED));
….
不過對於內嵌的Activity的生命周期就要特別的注意,尤其Tab內嵌的多個Activity的實體(instance)可能都是源自同一個類別的Activity。透過內嵌的Activity的onCreate 函式可以觀察到在runtime的時候,使用者在Tab間做切換的時這些Activity的onCreate的函式只會被執行一次,這是合理的設計,不過要注意的是就算是同一種類別的Activity分別嵌在不同的tab內,還是會產生多份的實體,所以在設計的時候,引用這些實體變數就要特別小心,特別這些實體變數可能間接獲是直接參照到其他類別的實體,否則一不注意,匪夷所思的行為就會出現嚕。






