Para comenzar mi servicio desde una Activiy, uso startService(MyService.class)
. Esto funciona muy bien, pero en un caso especial, el servicio debe iniciarse de manera diferente. Quiero pasar algunos parámetros al inicio del servicio.Android: iniciar el servicio con el parámetro
He intentado lo siguiente en mi Actividad:
Intent startMyService= new Intent();
startMyService.setClass(this,LocalService.class);
startMyService.setAction("controller");
startMyService.putExtra(Constants.START_SERVICE_CASE2, true);
startService(startMyService);
En mi servicio que utilizo:
public class MyIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("controller"))
{
// Intent was received
}
}
}
El IntentReceiver se ha registrado en onCreate() así:
IntentFilter mControllerIntent = new IntentFilter("controller");
MyIntentReceiver mIntentReceiver= new MyIntentReceiver();
registerReceiver(mIntentReceiver, mControllerIntent);
Con esta solución, el servicio se inicia pero no se recibe la intención. ¿Cómo puedo iniciar un servicio y pasar mis parámetros?
Gracias por su ayuda!
¿Para qué es MyIntentReceiver? ¿Desea escuchar una transmisión específica y alterar su comportamiento de servicio? – Audrius
@Audrius: Sí, tienes razón. MyIntentReceiver se usa para cambiar el comportamiento de mi servicio. Hay dos estados en mi servicio: uno al iniciar el servicio y otro cuando el servicio se está ejecutando. – Mike