Inyectar dependencias en singleton con Dagger?

¿Es posible tener Dagger inyectar singletons para usted?

Como están las cosas, sólo he encontrado una manera de proporcionar manualmente dependencias a singletons:

@Provides @Singleton public Dispatcher providesDispatcher(Context context, PPreferences preferences, FileNameCache fileNameCache) { return new Dispatcher(context, preferences, fileNameCache); } 

¿Es esta la única forma de definir singletons? Lo que prefiero hacer es algo como lo siguiente para que Dagger inyecte las dependencias en sí, sin embargo, al hacerlo me da un error.

 @Provides @Singleton public Dispatcher providesDispatcher(Dispatcher dispacher) { return dispacher; } 

Tal vez hay otra manera de definir singletons que me permitiría inyectar otros singletons en ellos sin embargo?

Cualquier ayuda es apreciada.

EDIT: Acabo de darme cuenta de que estoy haciendo el segundo enfoque con otro Singleton, sin embargo, es un caso ligeramente diferente como estoy cartografiar una implementación a una interfaz:

 @Provides @Singleton public Tracker providesTracker(TrackerImpl tracker) { return tracker; } 

TrackerImpl se inyecta con una instancia de las referencias PP mencionadas anteriormente también.

Cuando intento tenerlo crear el Dispatcher con el segundo ejemplo esto es el error que consigo:

 error: Unknown error java.lang.IllegalStateException thrown by javac in graph validation: Dependency cycle: 0. com.example.test.Dispatcher bound by @Singleton/ProviderMethodBinding[provideKey="com.example.test.Dispatcher", memberskey="null"] 0. com.example.test.Dispatcher 

No es necesario tener un método @Provides (en el módulo) para crear una instancia de singleton de Dispatcher. Simplemente anote el constructor Dispatcher con @Inject y la clase con @Singleton. Dagger usará esa instancia cada vez que inyecte una instancia de Dispatcher.

 @Singleton public class Dispatcher { @Inject public Dispatcher(..) } 
  • Detectar una excepción de entrada errónea
  • KSoap2 y KvmSerializable-Envía el objeto de clase con un campo de lista a webservice en java android
  • PowerManager.WakeLock en dispositivos Android
  • RxJava y eventos esporádicos al azar en Android
  • Programación orientada a objetos android
  • Android ClassNotFoundException: No encontró la clase en el path
  • Múltiples cargadores en la misma actividad
  • ¿Podemos actualizar el APK en Google Play Store sin cambiar la versión de APP
  • Archivo zip con memoria en Java
  • Problema del adaptador simple, texto + imagen en hilandero. Java, Android
  • ¿Cómo detectar cuando la batería es baja: Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.