雖然我開發了一個包含超過50個活動的應用程序,但它並非Android專業版,這使得應用程序非常龐大。經過8周的開發,現在有一些問題導致應用難以維護和升級。 主要的我負責的是Android:單個活動,多個視圖
我不能傳遞對象引用活動的構造。事實上,我發現了機制
startActivityForResult
-Intent
-onActivityResult
真的限制,並導致許多常量的每個活動的動作和很多switch
case
髒代碼,這是真的很難遵循應用程序的流程。另一個問題是,我不知道如何管理整個應用的生命週期,因爲每個活動都有自己的生命週期。
我曾與LWUIT和J2ME – polish其忽略J2ME的MIDlet(類似Android的活動),並只用一個MIDlet的實現自己的架構和窗口系統作爲進入到應用中的一些成功經驗。我已經想出了與android相同的想法。爲了澄清,我正在考慮一個應用程序,只有一個主要的Activity
和其他活動實施爲對象,擴展View
對象,這些視圖可以動態添加到主要活動FrameLayout
並相互堆疊。活動的邏輯可以在這些類中實現,我甚至找到了以這種方式實現對話的方法。 業務和狀態對象可以傳遞給它們的構造函數,它聽起來很好,忽略了編寫更多代碼的副作用。通過這種方式,偵聽器也可以傳遞給視圖的構造函數,這使得應用程序UI切換和流程管理更加輕鬆。
但問題是:
- 這是一個好的做法呢?
- 難道它不會導致性能或內存問題?
我也清楚的
- Android: What is better - multiple activities or switching views manually?
- Don't Overload a Single Activity Screen
- Pattern one activity, multiple views. Advantages and disadvantages
這些都不明確解決有關性能或做法有合理的證據或提供的參考問題
請有人幫我這個
當項目非常龐大時,必須正確設計代碼,將所有常見功能都拔出。更好地構建數據(更好的數據結構)。這些將根據我幫助減少很多代碼。 – sat
其實我已經做到了。儘管android不支持數據綁定,但我遵循了半MVVM模式。主要問題出現在UI層和視圖切換和發光收集。 – anonim