7

尽管我开发了一个包含 50 多个活动的应用程序,但我不是 Android 专业人士,这使得该应用程序非常庞大。经过8周的开发,现在出现了导致应用程序难以维护和升级的问题。我正在处理的主要是

  1. 我无法将对象引用传递给活动的构造函数。事实上,我发现startActivityForResult- Intent-onActivityResult真正限制并导致每个活动操作的许多常量的脏代码的机制,其中很多switch case真的很难遵循应用程序的流程。

  2. 另一个问题是我不知道如何管理整个应用程序的生命周期,因为每个活动都有自己的生命周期。

我在LWUIT和J2ME方面有过一些成功的经验——波兰语忽略了 J2ME MIDlet(类似于 android 活动)并实现了自己的架构和窗口系统,只需一个 MIDlet 作为应用程序的入口。我对android提出了同样的想法。

为了澄清,我正在考虑一个应用程序,其中只有一个主要Activity活动和其他活动作为扩展View对象的对象实现,并且这些视图可以动态添加到主要活动FrameLayout并相互堆叠。活动的逻辑可以在这样的类中实现,我什至找到了一种以这种方式实现对话框的方法。业务和状态对象可以传递给它们的构造函数,这听起来不错,忽略了编写更多代码的副作用。这种方式也可以将监听器传递给视图的构造函数,这使得应用 UI 切换和流管理更容易。

但问题是:

  • 这是一个好习惯吗?
  • 它不会导致我出现性能或内存问题吗?

我也知道

这些都没有通过合理的证据或书面参考清楚地解决有关绩效或实践的问题

请有人帮我解决这个问题

4

2 回答 2

6

市场上有一些流行的应用程序只有一个或几个活动。他们使用片段并切换它们。我更喜欢片段而不是你的方法。尽管我认为片段对于许多目的来说太复杂了,但对于您的用例来说,这将是一个很好的解决方案。您的 UI 行为应该在片段中,并且您的活动是在片段之间传输数据的控制器部分。片段也有自己的生命周期。

我也不喜欢startActivityForResult。如果我有一组活动 - 所有活动都提供数据 - 而且我不知道它们将按什么顺序被调用,我更喜欢使用单例类,然后使用意图在活动之间传输数据。但是你必须分析你的问题才能得到一个好的解决方案。

于 2012-06-02T12:05:29.207 回答
1

已经构建了一个 MVC 框架PureMVC 库

于 2013-02-14T17:12:50.893 回答