Verschiedene aidl interfaces beim onBind zurückgeben

D

dereulenspiegel

Fortgeschrittenes Mitglied
4
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:

Ähnliche Themen

S
  • Sempervivum
Antworten
2
Aufrufe
607
Sempervivum
S
M
Antworten
3
Aufrufe
854
maksimilian
M
B
Antworten
2
Aufrufe
1.394
deek
D
Zurück
Oben Unten