安卓和依赖注入

36

我一直在寻找有关在Android开发中使用依赖注入容器的信息,但始终没有结果。具体来说,如何覆盖创建Activity的方式,以便在从被销毁后重新启动时也能正常工作(不管是什么原因导致的销毁)。

是否有人在这方面有经验?


如果您最终使用了http://code.google.com/p/roboguice roboguice,我很想听听您的反馈意见。我鼓励您加入Google群组并告诉我们您的体验如何。 - emmby
4个回答

25

谢谢,看起来roboguice是我能得到的最接近的东西。它使用继承(GuiceActivity)并在setContentView上执行注入,但在检查Activity创建调用堆栈后,我可以看到没有其他方法。 - Richard Szalay
顺便说一句,Richard,RoboGuice现在进行两步注入。大多数注入在onCreate期间完成,视图注入则在setContentView期间完成。 - emmby
1
RoboGuice现已弃用,您应该尝试使用Toothpick,它们几乎具有相同的API。https://github.com/stephanenicolas/toothpick - Snicolas

3
您可能还想考虑使用 Spring ME。虽然最初是为Java ME设计的,但我已经看到一些人使用它来开发Android。它的好处在于您可以使用熟悉的编程模型(Spring),而不会造成额外负担:Spring ME的占用空间只有0k。

Spring ME 依赖于代码生成。你有没有找到任何资源来将其与构建过程集成?例如,它不能干扰我在 Eclipse 中运行 Android 应用程序的能力。而且 ant 构建过程也需要进行修改以支持它。 - Mark Renouf
嗨,马克,我不太确定你在说什么。我们使用Spring IDE扩展来支持开发(自动补全、验证等)。我可以看出,如果你正在使用Ant,事情可能会变得有点复杂。如果你需要帮助,请告诉我。我们可以讨论一下。(wilfred dot springer at gmail dot com) - Wilfred Springer
现在正在试图找到它并尝试一下,但我没有找到太多信息。它仍在积极开发中吗? - Mark Renouf
说实话,这不是很常见的,但我知道有一些人在他们的产品中使用它。好处是,如果你想承担一些责任,我很乐意接受你作为一名共同提交者。 - Wilfred Springer

1
如果你习惯在其他项目中使用Spring,那么你可能不会对Spring for Android(它只是一个带有Auth支持的REST库)、Spring ME(完全不同的工作流和功能集)或Tiny Spring(例如仅类似于Spring的配置)感到满意。
但是你可以尝试一下我的项目RoboSpring。根据描述:
RoboSpring是将Spring Framework真正移植到Android平台上的项目。此外,它还提供了初步支持RoboGuice引入的功能,例如将View引用注入Activities等。RoboSpring基于Spring的核心、bean、context和aop组件的3.1.0 RELEASE版本。它提供以下功能:
- 使用Spring配置文件(XML)配置应用程序组件 - 从Spring应用程序上下文中自动装配Android组件。 - 将Android应用程序上下文注入Spring Beans中。 - 将视图注入Activities中。 - …等等

https://github.com/dthommes/RoboSpring


0

还有一个新的针对Android的Spring项目:Tiny Spring。它解决了XML配置的基本问题,但并不像Spring那样功能齐全。


1
Spring框架并不支持在Android平台上使用IOC,但提供了一个REST客户端和认证支持,以访问安全API。 - Jet Geng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接