我的 Activity 注入了许多在第一次调用 onCreate 之前初始化的对象。当我的 Activity 通过调用 finish 方法完成时,它会在返回到主“OS 桌面”窗口之前通过 onDestroy。然后我再次调用我的应用程序,并再次调用 onCreate。这一次,虽然我的观点与上面最初调用完成时的观点相同。因此,我想知道 RoboGuice 是否再次重新实例化注入的对象?如果没有,我有办法做到这一点吗?谢谢。
问问题
492 次
2 回答
1
你是说这些没有重新实例化吗?
当 onCreate() 被调用时。当您更改手机方向时,每个对象都会再次注入。但是如果注入的对象之一是 Singleton,则将注入相同的对象实例。“单例”在整个应用程序范围内工作,因此活动生命周期不会影响单例对象。
于 2013-07-18T07:13:13.067 回答
0
查看 Android活动生命周期文档。
如果 Android 调用了 onCreate,则创建了一个新的 Activity 实例,并且将实例化任何非单例组件,并且所有组件都将由 roboguice 注入。
如果您只需要一个组件的单个实例,则可以将其设为单例。请注意单例的内存使用,因为它们将在应用程序过程中持续存在。因此,即使 Activity 已被销毁但您的应用程序进程仍在运行,这些单例也会消耗内存。
Roboguice 只是 guice 的封装。如果您有兴趣寻求获取类实例的其他选项,请查看guice中的Bindings、Scopes和Providers。
于 2012-02-01T07:40:38.880 回答