Android RoboGuice自定义模块应用程序上下文
如何在自定义模块中获取应用程序上下文?以下是我的模块代码:Android RoboGuice自定义模块应用程序上下文,android,dependency-injection,roboguice,Android,Dependency Injection,Roboguice,如何在自定义模块中获取应用程序上下文?以下是我的模块代码: public class MyModule extends AbstractModule { @Override @SuppressWarnings("unchecked") protected void configure() { // Package Info try { final PackageInfo info = application.getP
public class MyModule extends AbstractModule {
@Override
@SuppressWarnings("unchecked")
protected void configure() {
// Package Info
try {
final PackageInfo info = application.getPackageManager().getPackageInfo(
application.getPackageName(), PackageManager.GET_META_DATA);
bind(PackageInfo.class).toInstance(info);
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
}
}
我正在尝试获取应用程序的元数据。PackageInfo的默认模块版本没有元数据,因此我需要自定义绑定。只需将其插入构造函数即可
public final class MyModule extends AbstractModule
{
private final Context context;
@Inject
public MyModule(final Context context)
{
super();
this.context = context;
}
@Override
@SuppressWarnings("unchecked")
protected void configure() {
// Package Info
try {
final PackageInfo info = context.getPackageManager().getPackageInfo(
context.getPackageName(), PackageManager.GET_META_DATA);
bind(PackageInfo.class).toInstance(info);
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(e);
}
}
}我试过这个,但没用。。我怀疑我遗漏了什么明显的东西。您知道RoboGuice 2.0中使用自定义模块的完整示例吗?RoboGuice的默认示例不使用自定义模块。@Mubix此部分来自一个工作应用程序。什么意思,没用?若上下文为null或无效,我将尝试注入ContextProvider而不是context。