首页 > 解决方案 > 重置活动时如何销毁单例?

问题描述

我使用 gwt 2.8 和 google-gin 2.12

我想将一些对象注入到一个很深的 customcom.google.gwt.user.client.ui.composite中。

例如,此组合可能包含一个面板,该面板包含其他 UIBinded 视图,该视图可以包含其他嵌套元素...

DeepComposite
    \ APanel
        \ AnObjectToShare
        \ View1
        \ View2
            \ AnotherPanel
                \ AnObjectToShare
        \ View3
            \ AnObjectToShare

您可以在此层次结构中看到我需要在各个级别访问的AnObjectToShare 。

我的第一个反应是将它作为Scope.SINGLETON. 但是今天我觉得它太麻烦了,就好像我运行一个新的活动来初始化一个新的DeepComposite(这是我的 g-in-jection 上下文的起点),我以前的AnObjectToShare实例被重用了。

为了恢复,我正在寻找一种方法使我的单例仅在我当前的上下文中成为单例。或者一种重置我的单身人士的方法。或解决此问题的任何其他想法或解决方法。

标签: javagwtgwt-gin

解决方案


不幸的是,GIN 不支持自定义范围。但也许你可以迁移到 Dagger?(这将支持您的用例)


推荐阅读