开发者社区 问答 正文

java 订阅者模式不执行update?报错

有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得不到执行,也没有报错。这是为什么呢



展开
收起
爱吃鱼的程序员 2020-06-10 14:33:45 617 分享 版权
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    需要先

    setChanged()

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

    整理了内容,mark一下

    http://lison.cc/450.html

    2020-06-10 14:34:03
    赞同 展开评论