No soy bueno en inglés, pero trataría de explicar mi problema de buena manera.
Android, servicio de desvinculación y problemaServicio desconectado
Por lo tanto, el problema es:
1) Tengo un servicio local
2) lo comienzo y luego ligados a ella. 3) El problema aparece cuando estoy a punto de cerrar ese servicio. onServiceDisconnected método desde mi implementación de la clase ServiceConnection nunca se llama. Si lo cierro manualmente (desde la configuración), o por desvincularServicio, o por stopService, o por combinación de unbindService y stopService - onServiceDisconnected aún no se puede llamar. ¿Qué estoy haciendo mal?
código corto es el siguiente:
protected ServiceConnection mServerConn = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder binder) {
Log.d(LOG_TAG, "onServiceConnected");
}
@Override
public void onServiceDisconnected(ComponentName name) {
Log.d(LOG_TAG, "onServiceDisconnected");
}
}
public void start() {
// mContext is defined upper in code, I think it is not necessary to explain what is it
mContext.bindService(i, mServerConn, Context.BIND_AUTO_CREATE);
mContext.startService(i);
}
public void stop() {
mContext.stopService(new Intent(mContext, ServiceRemote.class));
mContext.unbindService(mServerConn);
}
Estoy probando este código bajo emulador de Android 2.2
Ok, gracias. No pensé, que es un error o algo más. Así que copié datos de aguja (código) de onServiceDisconnected() a stop(). Ahora funciona como yo quería. – UAS
esto es correcto. pero después de llamar a unbindService (connection) también, puedo llamar al método público presente en la clase myservice (servicio). entonces, no hay ningún significado con el método unbindservice() ¿correcto? Pero el servicio se destruye al llamar a Destroy(). – yokks