【问题标题】:Android and Dependency Injection [closed]Android和依赖注入[关闭]
【发布时间】:2010-01-25 20:27:27
【问题描述】:

我一直在寻找有关在 Android 开发中使用依赖注入容器的一些信息,但徒劳无功。具体来说,如何覆盖Activity 的创建,使其在被杀(无论出于何种原因)回来时也能正常工作。

有人有这方面的经验吗?

【问题讨论】:

  • 如果你最终使用了code.google.com/p/roboguice roboguice,我很想得到你的反馈。我鼓励您加入 google 小组,让我们知道您的体验。

标签: android dependency-injection inversion-of-control


【解决方案1】:

看来您可以在 Android 上使用 Google Guice 2.0。您还可以查看roboguice

编辑:

春天是also now available for Android

编辑: Roboguice 现在已弃用。你可以试试牙签背后的开发者在 cmets 中提到的Toothpick

【讨论】:

  • 谢谢,看来 roboguice 是我最接近的。它使用继承 (GuiceActivity) 并在 setContentView 上执行注入,但在查看 Activity 创建调用堆栈后,我可以看到没有其他方法。
  • 顺便说一句,RoboGuice 现在分两步进行注入。大多数注入在 onCreate 期间一次,对于 View 注入在 setContentView 期间一次。
  • RoboGuice,现已弃用,您应该尝试一下 Toothpick,它们的 API 几乎相同。 github.com/stephanenicolas/toothpick
【解决方案2】:

您可能还想考虑Spring ME。虽然最初是为 Java ME 设计的,但我也看到有人将它用于 Android 的报告。好处是您有一个熟悉的编程模型(Spring)而不会受到惩罚:Spring ME 的占用空间为 0k。

【讨论】:

  • Spring ME 依赖于代码生成。您是否找到了将其与构建过程集成的任何资源。例如,它不能干扰我在 Eclipse 中运行为... Android 应用程序的能力。并且还需要修改 ant 构建过程以支持它。
  • 嗨,马克,我不完全确定你在说什么。我们使用 Spring IDE 扩展来支持开发(完成、验证等)。我可以看到,如果您使用 Ant,事情可能会变得有点复杂。如果您需要帮助,请告诉我。我们可以谈论它。 (gmail dot com 的 Wilfred dot Springer)
  • 现在正试图找到它来试一试,但我想出的不多。它还在积极开发中吗?
  • 老实说,它不是,但我知道有几个人在他们的产品中使用它。从好的方面来说:如果你想获得一些所有权,我很乐意接受你作为提交者。
【解决方案3】:

如果您习惯在其他项目中使用 Spring,您将不会对 Spring for Android(它只是一个支持 Auth 的 REST 库)感到非常满意,Spring ME(完全不同的工作流程和减少的功能集)或 Tiny Spring(例如只有 Spring-like 配置)。

不过,您可以尝试一下我的项目 RoboSpring。来自描述:

RoboSpring 是 Spring 框架到 Android 平台的(真正)端口。此外,它还为 RoboGuice 引入的功能提供初步支持,例如将视图引用注入活动等。 RoboSpring 基于 Spring 的核心、bean、上下文和 aop 组件的 3.1.0 RELEASE 版本。它提供以下功能:

  • 使用 Spring 配置文件配置应用程序组件 (XML)
  • 使用 Spring 应用程序上下文中的 bean 自动装配您的 Android 组件。
  • 将 Android 应用程序上下文注入您的 Spring Bean。
  • 将视图注入到活动中。
  • ……等等

https://github.com/dthommes/RoboSpring

【讨论】:

    【解决方案4】:

    还有一个适用于 Android 的新 Spring 项目:Tiny Spring。它解决了 XML 配置的基本问题,但并没有完成 Spring 所做的所有事情。

    【讨论】:

    • spring for android 不支持 android 的 ioc,只提供一个 Rest Client 和 Auth 支持来访问安全 API。
    猜你喜欢
    • 2021-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-16
    • 2013-03-28
    • 2011-03-14
    相关资源
    最近更新 更多