2010-11-27 50 views
2

J'ai une classe qui implémente un observateur.Puis-je envoyer une diffusion à partir d'une classe qui ne prolonge pas l'activité?

J'ai une méthode qui est déclenchée dans cette classe lorsque l'état Obervered change, je veux envoyer une diffusion dans cette méthode. Cela signifie que mon activité peut écouter ces messages de diffusion et faire quelque chose avec les données.

C'est ce que j'ai jusqu'à présent

public class DoStuff extends BroadcastReceiver implements Observer 
{ 
    public void observe(String message) 
    { 
     Log.d("TEST", "Inside observe() on DoStuff " + message); 

     // Here I want to send out a broadcast to MyActivity with message 
     // in the extras 
    } 

} 

Je ne peux pas utiliser context.sendBroadcast, parce que je n'ai pas accès au contexte de l'application ici, comment puis-je y parvenir?

Merci à l'avance

+0

Pourquoi n'utilisez-vous pas le 'Context' présent dans le' onRecieve' du BroadcastReciever ... je suis désolé je ne l'ai pas encore essayé, mais ça vaut le coup. – st0le

Répondre

0

Pourquoi utilisez-vous BroadcastReciever à mettre en œuvre l'interface Observer? Je suppose qu'un Service ou un Application sont de meilleurs candidats dans le cas où vous avez vraiment besoin d'accéder à une instance Context. BroadcastRecievers ne sont en vie que pendant l'appel de méthode onRecieve(), donc de mon point de vue cela n'a aucun sens d'implémenter l'interface Observer en les utilisant.