【发布时间】:2013-10-28 18:59:01
【问题描述】:
虽然我开发了一个包含 50 多个活动的应用程序,但我不是 Android 专业人士,这使得该应用程序非常庞大。经过8周的开发,现在出现了导致应用程序难以维护和升级的问题。 我正在处理的主要是
我无法将对象引用传递给活动的构造函数。事实上,我发现
startActivityForResult–Intent–onActivityResult的机制确实受到限制,并导致每个活动的操作包含许多常量的脏代码和很多switchcase这真的很难遵循流程应用程序。另一个问题是我不知道如何管理整个应用程序的生命周期,因为每个活动都有自己的生命周期。
我对@987654321@ 和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
这些都没有通过合理的证据或书面参考明确解决有关绩效或实践的问题
请有人帮我解决这个问题
【问题讨论】:
-
当项目如此庞大时,代码必须设计得当,把所有常用功能都抽出来。更好地构造数据(更好的数据结构)。在我看来,这些将有助于减少大量代码。
-
事实上我已经做到了。尽管 android 不支持数据绑定,但我遵循了半 MVVM 模式。主要问题在于 UI 层和视图切换和发光在一起。