2010-12-14 80 views
0

J'ai une classe de service que je lie à partir de mon activité principale avec un ServiceConnection pour appeler une méthode dans le service dès qu'elle est liée. J'ai besoin d'appeler explicitement la méthode pour passer le contexte de mon activité principale.Accès à une méthode d'un service lié à partir d'un IntentReceiver sur Android

Si j'appelle cette classe de service à partir d'un IntentReceiver, j'ai besoin d'utiliser peekService pour lier au service. Mais comment puis-je engendrer sa méthode alors? : -s

Cordialement/Merci beaucoup!
S.

Répondre

1

peekService vous renvoie l'implémentation IBinder. il suffit d'appeler getService() et vous obtiendrez votre objet de service.

Mettez votre code à l'intérieur de votre service:

public class LocalBinder extends Binder { 
    public NotificationService getService() { 
     return NotificationService.this; 
    } 
} 

@Override 
public IBinder onBind(Intent intent) { 
    return new LocalBinder(); 
} 
+0

Vladimir, le IBinder ne fournit pas une méthode getService(). :( – stpn108

+0

voir la mise à jour –

+0

merci Vladimir, j'ai fait comme tu l'as dit mais IBinder ne me donne pas la chance d'appeler la méthode getService() Seules les méthodes IBinder standard semblent être disponibles. à partir de mon IntentReceiver est: IBinder serviceBinder = peekService (contexte, bindOAService); OnlineActivities oaServerObj = serviceBinder.getService(); Obviouly mal, hein? – stpn108