Для этого можно использовать жизненный цикл андроида .
Создайте интерфейс сигнала, он же ваше событие
interface NewsUpdateSignal{
void newsUpdateHandler(Mydata data);
}
Если зарегистрировать его в своей деятельности или в другом месте, где вы хотите, может быть много слушателей того же Signal
.
class MyActivity extends Activity implements NewsUpdateSignal{
Signal<NewsUpateSignal> newsUpdateSignal = SignalsBag.inject(NewsUpateSignal.class);
@Override
protected void onCreate(Bundle savedInstanceState) {
newsUpdateSignal.addListener(this);
}
@Override
public void newsUpdateHandler(final Mydata data){
//Do something here
}
}
И отправляйте сигнал тогда, когда вам нужно, откуда угодно.
Class A{
Signal<NewsUpateSignal> newsUpdateSignal = SignalsBag.inject(NewsUpateSignal.class);
void execute(){
// obtain the data somehow, and dispatch it, the callback will be invoked on the same thread
newsUpdateSignal.dispatcher.newsUpdateHandler(data);
}
}
Отказ от ответственности: я являюсь автором жизненного цикла Android.