Android 早期推薦「一頁一 Activity」,現代架構(Jetpack Navigation、單 Activity 多 Fragment)已成主流。題主採用單 Activity + ViewFlipper + 自定義 BaseView,雖能運行但存在隱患。
多 Activity 模式
- ✅ 符合系統組件模型,生命週期清晰,系統自動管理棧。
- ✅ 進程級隔離,崩潰不波及其他頁面。
- ❌ 切換開銷大(創建/銷毀、窗口動畫),數據傳遞需
Intent/Bundle 序列化。
- ❌
AndroidManifest 註冊繁瑣,深度鏈接、結果回調易出錯。
單 Activity + Fragment(官方推薦)
- ✅ 輕量切換,共享上下文,數據通信用
ViewModel/LiveData 類型安全。
- ✅ Navigation Component 統一圖導航,支持 Deep Link、動畫、返回棧可視化。
- ✅ 生命週期感知組件自動處理配置變更(旋轉屏幕)。
單 Activity + ViewFlipper/View 自定義棧(題主方案)
- ⚠️ 繞過 Fragment 機制,需手動管理視圖棧、生命週期分發、內存釋放、輸入法彈出、系統返回鍵攔截……
- ⚠️ 缺乏生態支持:DataBinding、Compose、LeakCanary 等工具無法識別「偽頁面」。
- ⚠️ 團隊協作成本高,新人需學習私有框架而非通用技能。
建議遷移路徑
- 引入
Fragment + ViewPager2/Navigation 替換 ViewFlipper。
- 將
BaseView 邏輯下沉到 ViewModel 或 Fragment 基類。
- 逐頁重寫,保持 APK 體積與性能優勢。
結論:拥抱單 Activity + Fragment/Compose 是長期正解,自建視圖棧僅適合極簡原型或特殊嵌入式場景。