Наблюдаемый / Наблюдатель не работает?

Я пытался реализовать статический Observable в моем подклассе Application, но он не работает. Нет исключений или сообщений об ошибках, но мой callback update () не вызывается.

MyApplication.java

public class MyApplication extends Application{
    public static Observable appObserver = new Observable();

    public void onCreate(){
        super.onCreate();        
    }

}

Foo.java

MyApplication.appObserver.notifyObservers( "Hello world" );

BarFragment.java

public class BarFragment extends Fragment implements Observer{

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);                
        MyApplication.appObserver.addObserver(this);
    }


    @Override
    public void onDestroy() {       
        MyApplication.appObserver.deleteObserver(this);
        super.onDestroy();
    }


    @Override
    public void update(Observable observable, Object data) {
        Log.i("BarFragment", data.toString()); // Should log, but doesn't
    }

}

Более того, я попытался написать свою собственную заметку Observable, а затем все заработало как шарм, просто заменив public static Observable appObserver = new Observable(); на public static MyObservable appObserver = new MyObservable();

MyObservable.java

public class MyObservable {
    protected List<Object> observers = new ArrayList<Object>();

    public void addObserver(Object observer){
        observers.add(observer);
    }

    public void notifyObservers(Object data){
        for( int i=0; i<observers.size(); i++ ){
            ((Observer) observers.get(i)).update(null, data);
        }
    }
}

Чего мне не хватает?

Я тестирую это на Nexus One с Android 2.3.6, если это имеет значение.

8
задан Magnus W 22 February 2014 в 12:53
поделиться