Android:单个 Activity ,多个 View

标签 android design-patterns

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

  1. 我无法将对象引用传递给 Activity 的构造函数。事实上,我发现 startActivityForResultIntentonActivityResult 的机制确实有限制,并导致每个 Activity 的 Action 有很多常量的脏代码,而且很多switch case 这真的很难跟上应用程序的流程。

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

我有一些成功的经验 LWUITJ2ME – polish它忽略 J2ME MIDlet(类似于 android Activity )并仅使用一个 MIDlet 作为应用程序的入口来实现自己的体系结构和窗口系统。我对 Android 也有同样的想法。

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

但问题是:

  • 这是一种好的做法吗?
  • 这不会导致性能或内存问题吗?

我也知道

这些都没有通过合理的证据或书面引用清楚地解决与性能或实践有关的问题

请有人帮我解决这个问题

最佳答案

市场上有流行的应用程序,只有一项或几项 Activity 。他们使用 fragment 并切换它们。我更喜欢 fragment 而不是你的方法。尽管我认为 fragment 对于许多用途而言过于复杂,但对于您的用例而言,这将是一个很好的解决方案。您的 UI 行为应该是 fragment 式的,而您的 Activity 是在您的 fragment 之间传输数据的 Controller 部分。 fragment 也有自己的生命周期。

我也不喜欢 startActivityForResult。如果我有一组 Activity ——所有 Activity 都提供数据——而且我不知道它们将以何种顺序被调用,我更喜欢使用单例类,然后使用 Intent 在 Activity 之间传输数据。但是您必须分析您的问题才能找到好的解决方案。

关于Android:单个 Activity ,多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10862052/

相关文章:

android - 蓝牙:不使用 UUID 连接

java - 为什么要使用 getInstance

php - 我应该为 User 类的唯一实例使用哪种模式?

javascript - 重构具有相同原型(prototype)属性的对象

java - 事后实现接口(interface)

php - REST API - 相互依赖的端点试运行流程?

android - 从 ConversationActivity 返回时避免显示最近的对话列表

android - Gradle存在非零值

android - Android WebView 的 AppCache 正确设置

Android map - 限制在 180 度