Я знаю, что уже несколько лет поздно, но хотел добавить свою версию, которую я потратил несколько часов, чтобы приступить к работе.Вот код, расположенный в файле DBupdateEventListener.java:
public interface DBupdateEventListener {
public void onUpdateChannelSubscriptions();
}
class DBupdateEventListenerRegistry implements DBupdateEventListener{
public static List<DBupdateEventListener> registeredListeners = new ArrayList<DBupdateEventListener>();
public void registerListener(DBupdateEventListener listener){
registeredListeners.add(listener);
}
public void onUpdateChannelSubscriptions(){
for (DBupdateEventListener listener:registeredListeners){
listener.onUpdateChannelSubscriptions();
}
}
}
, очень ОЧЕНЬ важно, чтобы зарегистрированный список переменных является общедоступной статической переменной.По этой причине я добавил свой собственный ответ на этот вопрос через несколько лет после того, как он уже был закрыт.
и вот код, который я использую в методе OnCreate () фрагмента, который необходимо обновитьпосле запуска события:
dbUpdater = new DBupdateEventListener() {
@Override
public void onUpdateChannelSubscriptions() {
//put the code you want to run when the event is triggered here:
loadChannelListsFromDB();
}
};
DBupdateEventListenerRegistry temp = new DBupdateEventListenerRegistry();
temp.registerListener(dbUpdater);
и вот код, используемый в моей асинхронной задаче, которая в первую очередь вызывает событие:
dbUpdaterRegistry = new DBupdateEventListenerRegistry();
dbUpdaterRegistry.onUpdateChannelSubscriptions();