Verbindung Activity -> Service abbrechen

U

Unicate

Erfahrenes Mitglied
57
Hallo alle zusammen!

Ich habe eine Activity, die sich bei Start mit einem Remote Service verbindet.
Das passiert in meinem sogenannten BackgroundManager. Dieser hat eine public Method, welche ich connect() nannte.
connect soll prüfen ob der Service bereits läuft (über die statische Variable _isRunning). Wenn nicht, soll der Service erstellt werden und dann erneut verbunden werden.

PHP:
public void connect() {        
    if(_isRunning) {
        if(null == _service)
            _context.bindService(_remoteIntent, _connection, Context.BIND_AUTO_CREATE);
    } else {
        startService();
        connect();
    }
}
private void startService() {        
    _context.startService(_remoteIntent);
    _isRunning = true;
}
Ich rufe die Methode connect im "onResume" der Activity auf und er verbindet sich wie gewollt. (Die implementierte Methode des Interfaces ServiceConnection "onServiceConnected" wird erfolgreich aufgerufen)
Das funktioniert auch soweit.

Mein Problem ist mit der Methode disconnect
PHP:
public void disconnect() {
    _context.unbindService(_connection);
}
Die Methode "disconnect" rufe ich in der Methode "onPause" der Activity auf. Leider wird hier nie die Methode "onServiceDisconnected" des ServiceConnection-Interfaces aufgerufen.

Was mach ich falsch?

[Edit:]

Hier mal die ServiceConnection:
PHP:
private ServiceConnection _connection = new ServiceConnection() {        
    @Override
    public void onServiceDisconnected(ComponentName arg0) {
        Log.d(TAG, "Service disconnected!");            
        try {
            _service.unregisterCallback();
        } catch (Exception e) {
            e.printStackTrace();
        }
        _service = null;
    }
    
    @Override
    public void onServiceConnected(ComponentName className, IBinder service) {
        _service = BackgroundServiceConnector.Stub.asInterface(service);
        Log.d(TAG, "Service connected!");
        try {
            _service.registerCallback(_callback);                
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
};

"Service disconnected" wird nie ausgegeben...
 
Zuletzt bearbeitet:

Ähnliche Themen

M
  • maksimilian
Antworten
15
Aufrufe
1.701
maksimilian
M
M
Antworten
8
Aufrufe
955
deek
D
M
  • maksimilian
Antworten
5
Aufrufe
859
maksimilian
M
Zurück
Oben Unten