2013-03-23 1 views
2

내 사용자 정의 모듈에서 응용 프로그램 컨텍스트를 얻으려면 어떻게해야합니까? 나는 응용 프로그램에 대한 메타 데이터를 얻기 위해 노력하고RoboGuice 사용자 정의 모듈 응용 프로그램 컨텍스트

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의 기본 모듈 버전에는 메타 데이터가 없으므로 사용자 정의 바인딩이 필요합니다. 내가 뭔가를 분명 실종됐다 의심 ..

답변

3

그냥 내가이 시도 생성자

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); 
     } 
    } 

}

+0

에 주입했지만 작동하지 않았다. RoboGuice 2.0과 함께 맞춤 모듈을 사용하는 완전한 예를 알고 계십니까? RoboGuice의 기본 예제는 사용자 정의 모듈을 사용하지 않습니다. –

+0

@Mubix이 부분은 작동중인 앱에서 가져온 것입니다. 무슨 뜻입니까, 작동하지 않았습니까? 컨텍스트가 null이거나 유효하지 않은 경우 컨텍스트 대신 _ContextProvider_를 주입하려고합니다. –

관련 문제