내 응용 프로그램 하위 클래스에서 정적 Observable을 구현하려고했지만 작동하지 않습니다. 예외 나 오류 메시지가 없지만 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
}
}
무엇이야 더, 나는 내 자신의 간단한 관찰 가능한을 낙서 시도하고 모든 것이 내가 놓친 게 무엇 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);
}
}
}
와 public static Observable appObserver = new Observable();
을 대체와 매력처럼 일?
문제가있는 경우 Nexus One with Android 2.3.6에서 테스트하고 있습니다.