2010-11-27 3 views
2

У меня есть класс, который реализует Observer.Могу ли я отправить трансляцию из класса, который не распространяется на активность?

У меня есть метод, который запускается в этом классе, когда изменяется состояние Оберверения, я хочу отправить широковещательную передачу в этом методе. Это означает, что моя деятельность может прослушивать эти широковещательные сообщения и делать что-то с данными.

Это то, что я до сих пор

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 
    } 

} 

Я не могу использовать context.sendBroadcast, потому что у меня нет доступа к контексту приложения здесь, как я могу добиться этого?

Заранее спасибо

+0

Почему вы не используете `Context`, присутствующий в` onRecieve` BroadcastReciever ... извините, я еще не пробовал, но это того стоит. – st0le 2010-11-27 17:12:39

ответ

0

Почему вы используете BroadcastReciever реализовать Observer интерфейс? Я думаю, что Service или Application являются лучшими кандидатами на тот случай, если вам действительно нужен доступ к экземпляру Context. BroadcastRecievers существуют только во время вызова метода onRecieve(), поэтому с моей точки зрения нет смысла реализовывать интерфейс Observer.