Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Service binden - onBind() wird nicht aufgerufen

Das Thema "Service binden - onBind() wird nicht aufgerufen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 17.08.2011, 11:23   #1 (permalink)
Neuer Benutzer

Registriert seit: 12.06.2011
Beiträge: 14
Abgegebene Danke: 2
Erhielt 2 Danke für 2 Beiträge
Unglücklich Service binden - onBind() wird nicht aufgerufen

Hallo,

ich habe einen kleinen Service geschrieben, den ich über eine Activity aufrufen möchte.

Code in der Activity:
Code:
        Intent intent = new Intent(this, ConnectionService.class);
        mConnection = createServiceConnection();
        
        if(!mBound){
            Log.i(LoginActivity.class.getName(), "Binde Service");
            bindService(intent, mConnection, Context.BIND_AUTO_CREATE);
        }
        Log.i(LoginActivity.class.getName(), "mService is " + mService);
Methode createServiceConnection()
Code:
        ServiceConnection mConnection =
                new ServiceConnection(){

            public void onServiceConnected(ComponentName className, IBinder service) {
                Log.i(LoginActivity.class.getName(), "Service connected");
                LocalBinder<ConnectionService> binder = (LocalBinder<ConnectionService>) service;
                mService = binder.getService();
                mBound = true;
            }

            public void onServiceDisconnected(ComponentName className) {
                Log.i(LoginActivity.class.getName(), "Service disconnected");
                mBound = false;
                
            }
            
        };
        return mConnection;
der LocalBinder ist eine kleine Hilfsklasse, mit dem ich das Bind Objekt realisiere - angelehnt an den Tipp von
http://www.ozdroid.com/#!BLOG/2010/12/19/How_to_make_a_local_Service_and_bind_to_it_in_Andr oid

Im ConnectionService habe ich dann diese Methode
Code:
public IBinder onBind(Intent arg0) {
        Log.i(ConnectionService.class.getName(), "Erzeuge Binder");
        return new LocalBinder<ConnectionService>(this);
    }
Anhand der Log-Ausgaben lässt sich erkennen, dass bindService() aufgerufen wird, onBind() aber nicht.
In der Manifest-Datei ist der Service hinterlegt.
Target ist Android 1.5
Woran kann das liegen?
J4y ist offline   Mit Zitat antworten
Alt 17.08.2011, 11:48   #2 (permalink)
Neuer Benutzer

Registriert seit: 12.06.2011
Beiträge: 14
Abgegebene Danke: 2
Erhielt 2 Danke für 2 Beiträge
Standard AW: Service binden - onBind() wird nicht aufgerufen

Ok das Thema hat sich geklärt :-D

Das Problem war, dass ich davon ausgegangen bin, dass die Methode bindService erst beendet ist, wenn der Service korrekt angebunden ist. Daher führe ich im späteren Codeabschnitt direkt eine Anweisung auf den Server aus.
Da das aber nicht der Fall ist, wird hier eine NullPointerException geworfen.
Ich erzeuge nun den Service direkt in der onCreate() Methode und nicht erst im späteren Verlauf. Damit ist dann sichergestellt, dass der Service später schon existiert.
J4y ist offline   Mit Zitat antworten
Antwort

Stichworte
bind, binder, bindservice, onbind, service

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
Service-Run-Checker: Läuft Service oder nicht? sem_thesis Android App Entwicklung 1 11.06.2011 21:47
onConfigurationChanged wird nicht immer aufgerufen paulinchen Android App Entwicklung 1 14.04.2011 11:02
Verschiedene aidl interfaces beim onBind zurückgeben dereulenspiegel Android App Entwicklung 0 21.12.2009 15:15
onCreateDialog wird nicht immer aufgerufen RED-BARON Android App Entwicklung 3 18.12.2009 10:19
Binden von 2 Services Memex Android App Entwicklung 0 12.11.2009 15:18




Du liest gerade: "Service binden - onBind() wird nicht aufgerufen" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.