在 Android 開發中使用 TabHost 時,若嘗試通過 Intent 直接加載不同的 Activity 作為標籤頁內容,往往會遇到運行異常。許多開發者發現需要使用 LocalActivityManager 才能正常工作,但該類已被標記為棄用。
th.setup();
th.addTab(buildTagSpec("tab_soft", R.string.soft, R.drawable.shezhi, soft));
// buildTagSpec 內部調用 th.newTabSpec(...).setContent(intent)
直接將 Intent 傳給 setContent() 在舊版 API 中可行,但在新版本中會導致生命周期管理混亂、內存洩漏等問題。
強烈建議遷移至 ViewPager + Fragment 架構:
FragmentTabHost(支持庫中提供)可作為過渡方案FragmentStatePagerAdapter 或 FragmentPagerAdapter 管理標籤頁TabLayout 實現 Material Design 風格的標籤導航LocalActivityManager雖然舊代碼通過 LocalActivityManager 可暫時修復,但從長遠考慮,盡早重構為 Fragment 方案是明智選擇。