2012-04-28 18 views
6

Tengo un servicio en segundo plano en ejecución. Ahora, si el usuario abandona la actividad, el servicio seguirá ejecutándose, ¿verdad? Ahora cuando el usuario reinicia la aplicación, quiero acceder al servicio en segundo plano y llamar a algunos métodos. ¿Cómo puedo acceder a la instancia del servicio en segundo plano?Obtención de instancia del Servicio en segundo plano

Gracias Chicos!

Respuesta

6

Esto funcionó para mí de inmediato. Sin embargo, no lo use si tiene alternativas porque los miembros públicos no son buenos a menos que sean definitivos. Puede crear una variable estática con alcance público en el Servicio.

public static BackgroundService bs; 
@Override 
public void onCreate(){ 
    bs=this;} 

A continuación, inicialice la variable con 'this', lo que la convierte en una referencia del servicio actual en ejecución. Úselo como referencia en su actividad en cualquier momento.

+0

¡suena genial! lo probaré hoy y veremos si funciona! ¡gracias! – Ishwar

+0

Ok, entonces hice lo que dijiste, pero obtengo NullPointerException. Mis códigos: http://pastebin.com/UT9Rcyi4 – Ishwar

+1

Esto se debe a que según (stackoverflow.com/questions/5085190/...) las llamadas al servicio de inicio son asíncronas. ¡Así que su servicio aún no se ha iniciado! Simplemente inicie su servicio en algunos otra actividad y a partir de ahí comienza tu actividad usando startActivity(). Está funcionando para mí. – rahulserver

0

Si desea comunicarse con el servicio de fondo. No se puede utilizar el mecanismo de aglutinante, y sobre este se podía acceder a esta web: android develop

hay un ejemplo para decirle a la forma de utilizar el servicio en segundo plano

muchas gracias

1

Si el servicio continúa ejecutándose después de abandonar su actividad depende de cómo lo inicie. (Lea sobre esto en la documentación startService()/bindService()) Si su Servicio aún se está ejecutando, las llamadas a startService()/bindService() lo conectarán con su 'viejo' servicio.

+1

por lo que quiere decir que si el servicio se ejecuta en segundo plano, un servicio de inicio o vinculación no generará una nueva instancia del servicio. En cambio, ¿buscará el anterior? – Ishwar

Cuestiones relacionadas