1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Verschiedene aidl interfaces beim onBind zurückgeben

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von dereulenspiegel, 21.12.2009.

  1. dereulenspiegel, 21.12.2009 #1
    dereulenspiegel

    dereulenspiegel Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    105
    Erhaltene Danke:
    4
    Registriert seit:
    16.08.2009
    Hallo,

    ich schreibe gerade eine Anwendung bei der im Hintergrund ein Service rennt. Jetzt sollen verschiedene Activities darauf zugreifen und das halt auch mit verschiedenen aidl interfaces. Mit einem interface klappt alles wunderbar. Aber jetzt will ich in der onBind-Methode anhand eines ExtraInts im Intent festlegen was zurückgegeben wird. Aber irgendwie klappt das nicht. Es wird anscheinend immer nur der erste gesendete Intent ausgewertet und wenn ich dann mit der nächsten Activity binden will startet er zwar onBind aber mit dem falschen Intent.
    Hier mal das betreffende Codesnippet:
    Code:
        public IBinder onBind(Intent intent) {    
            int interfaceType = intent.getIntExtra(INTERFACE_TYPE_NS,-1);
            
            Log.i("XMPPService","Binding intent interfaceType="+interfaceType);
            if(interfaceType==0){
                Log.i("XMPPService","RosterActivity tries to bind, returning serviceRoster");
                return serviceRoster;
            }
            else if(interfaceType==1){
                Log.i("XMPPService","ChatActivity tries to bind, returning serviceChat");
                return serviceChat;
            }
            return null;
        }
    
    Komischerweise bleibt der interfaceType immer bei 0. Wo liegt mein Fehler? Oder hat jemand eine bessere Idee verschiedene Interfaces beim onBund zurückzugeben?

    Ok, ich habe das Problem gelöst. In der onBind Methode sind die Extras eines Intents nicht lesbar. Anscheinend führt das auslesen der selbigen auch zu recht merkwürdigen Effekten. Sinnvoller ist es per setAction(String) die Action des Intents zu setzen und in onBind auszulesen. Vielleicht hilft das ja jemandem auch mal weiter...
     
    Zuletzt bearbeitet: 22.12.2009

Diese Seite empfehlen