que tienen un servicio con un constructor siguiente:¿Cómo crear una instancia del servicio de Android con un constructor?
public ShimmerService(Context context, Handler handler) {
mHandler = handler;
}
Quiero crear una instancia de esta clase de servicio. He siguiente código, pero no estoy seguro de por dónde pasa el parámetro de:
private ServiceConnection mConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder binder) {
mShimmerService = ((ShimmerService.ShimmerConfigureBinder) binder)
.getService();
Toast.makeText(ConfigureShimmer.this,
"Shimmer service has succesfully started.",
Toast.LENGTH_SHORT).show();
}
public void onServiceDisconnected(ComponentName className) {
mShimmerService = null;
}
};
tengo todo lo demás incluyendo la configuración de unión, en el arranque y así sucesivamente. Pero obtengo un error en el código anterior:
04-03 19:06:10.285: E/AndroidRuntime(16837): java.lang.RuntimeException: Unable to instantiate service com.milanix.androidecg.services.ShimmerService: java.lang.InstantiationException: can't instantiate class com.milanix.androidecg.services.ShimmerService; no empty constructor
¿Cómo puedo solucionar este problema? ¿Dónde tendré que pasar el parámetro? Siguiendo código funciona, sino, más bien usa la clase de servicio como clase, en lugar de servicio:
mShimmerService = new ShimmerService(this, mHandler);
pero, ¿cómo pasaré el uso y la intención del controlador? algún ejemplo? – Milan
¿Para qué necesitas ese controlador? ¿Estás seguro de que construir el controlador desde cero en el servicio no será de ayuda? Los servicios no son hilos; el servicio se ejecuta en el mismo hilo de UI que el código de consumidor. –
No sé si hay una diferencia entre 'bindService' y' startService' en este aspecto, pero de acuerdo con la documentación y [esta discusión] (https://groups.google.com/d/topic/android-developers/onqqpHz2WQw/discussion) los extras _might_ no estarán allí cuando el Intent se reciba en 'onBind'. – DuneCat