使用Dagger注入AuthenticatorService,SyncAdapter和Application

时间:2014-11-30 21:41:58

标签: android dagger

目前我正在开发一个Android应用程序,该应用程序使用ContentProviders,SyncAdapter和AuthenticatorService作为基础,用于将应用程序数据与REST Api同步。我想将Dagger模块注入到应用程序和服务中。我创建了一个这样的应用程序类:

public class App extends Application {
    private ObjectGraph objectGraph;

    @Override
    public void onCreate() {
        super.onCreate();
        this.objectGraph = ObjectGraph.create(
               new DataModule()
        );
    }

    public ObjectGraph getObjectGraph() {
        return this.objectGraph;
    }
}

在我的AuthenticatorActivity中,我想注入依赖项。我使用了以下代码:

((App) getApplication()).getObjectGraph().inject(this)

我收到的错误是:

Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.example.App

AuthenticatorActivity由我的AuthenticatorService打开,我在应用程序中内置了http://developer.android.com/training/sync-adapters/creating-authenticator.html

是否可以使用Dagger将依赖项注入服务?或者我是否需要使用其他代码来访问ObjectGraph?

0 个答案:

没有答案