java 订阅者模式不执行update

Lison-Liou 发布于 2016/01/28 11:46
阅读 273
收藏 0

有FragmentMain,三个子类FragmentA、B、C;

FragmentMain中有一个Observable的对象observable:


protected Observable observable = new Observable();

然后子类ABC分别implements Observer接口,并实现update方法

子类的onStart中向主类的observable对象注册了自己:

super.observable.addObserver(this);

并且发送了一条Message给主类的handler,告诉主类自己已经实例化,然后主类执行以下代码

断点调试中,主类的notifyObservers也执行了,如下


observable.notifyObservers("Got dataaaaaaaaaaaaaa");

但是子类的update得不到执行,也没有报错。这是为什么呢



加载中
0
渠富林
渠富林
需要先

setChanged()

Lison-Liou
Lison-Liou
感谢,基础太薄弱; FragmentMain应该创建内部类继承自Observable,不然无法使用Observable的protected方法setChanged();这样才可以使不同package中的子类访问父类的protected方法
0
Lison-Liou
Lison-Liou

整理了内容,mark一下

http://lison.cc/450.html

返回顶部
顶部