Ну, не могу сказать, если это классифицирует как шаблон:
Мое взятие на этом было бы просто создать отдельный класс, позволяет назвать его JSONGameStateFilter, чтобы отфильтровать объект JSON на основе полученного значения плюс состояние игры
что-то вроде:
public class JSONGameStateFilter() {
public interface GameInterface1 {
// callback methods for activity 1
// example: public void newPlayerArrived(String name, int score);
// ...
}
public interface GameInterface2 {
// callback methods for activity 2
}
public interface GameInterface3 {
// callback methods for activity 3
}
private GameInterface1 callback1;
private GameInterface2 callback2;
private GameInterface3 callback3;
private JSONGameStateFilter instance;
public static JSONGameStateFilter getInstance() {
if (instance != null) {
return instance = new JSONGameStateFilter();
}
}
private JSONGameStateFilter() {}
public void registerListener(GameInterface1 callback) {
// called by Activity1 implementing GameInterface1
// by JSONGameStateFilter.newInstance().registerListener(this);
this.callback1 = callback;
}
public void registerListener(GameInterface2 callback) {
this.callback2 = callback;
}
public void registerListener(GameInterface3 callback) {
this.callback3 = callback;
}
public void filterJSON(JSONObject object) {
// read JSON and gamestate
// depending on situation call the right callback
// example: if (callback1 != null) callback1.newPlayerArrived(name, score)
}
}
дизайн этого подхода было бы реализации различен обратных вызовов по каждому виду деятельности (известной модели для фрагментов обратной связи с деятельностью).
Это не проверено и написано только сейчас, но я уверен, что он будет работать хорошо.
Простым подходом было бы использовать Broadcasting и позволять каждому обработчику прослушивать соответствующие намерения, таким образом, только выбирать соответствующие. Просто из любопытства вы используете GCM или неоднократно вытягиваете сервер за обновлениями? – cYrixmorten
На самом деле существует около 3 видов деятельности, которые контролируют игру на основе уведомления, и каждый получает от 5 до 20 различных уведомлений. – Adnan
Нет, я использую сигнал R. – Adnan