我正在Android应用程序上使用自定义上下文,并且正在使用Roboguice进行注入(我使用ActionBarSherlock,所以我使用robosherlock)
此自定义上下文使用的是调用onCreate时初始化的某些字段。
接下来,我有一个Fragment,其签名如下所示:
public class CustomFragment extends RoboSherlockListFragment
我尝试注入我的自定义上下文:
@Inject
private CustomContext mContext;
当我尝试使用getPrivateField()方法访问在CustomApplication的上下文上初始化的私有字段时,会得到null,就像上下文是新的一样,而不是重用旧的。
有人可以帮我吗?
谢谢!
最佳答案
我不知道您的CustomContext
是如何工作的,但是当RoboGuice遇到没有特定绑定规则(模块中的@Inject
行)的bind(CustomContext.class)
批注时,它只会创建使用默认构造函数的新对象。
您可能应该创建一个自定义提供程序,其中包含从何处获取此特定CustomContext的逻辑。