以下是 DataObservable 类的主要方法:
import ohos.data.DataObservable;
import ohos.data.Observable;
import ohos.data.Observer;
public class DataObservable<T> extends Observable<Observer<T>> {
public void notifyDataChanged();
public void notifyDataChanged(T data);
}
- notifyDataChanged(): 通知所有注册的观察者数据已经发生变化。
- notifyDataChanged(T data): 通知所有注册的观察者数据已经发生变化,并携带新的数据。
通过继承 DataObservable 并实现相应的观察者接口,你可以在数据发生变化时接收通知。以下是一个简单的示例:
import ohos.aafwk.ability.DataAbilityHelper;
import ohos.aafwk.ability.DataAbilityRemoteException;
import ohos.data.DataObservable;
import ohos.data.Observer;
import ohos.hiviewdfx.HiLog;
import ohos.hiviewdfx.HiLogLabel;
public class ObservableExample {
private static final HiLogLabel LABEL = new HiLogLabel(HiLog.LOG_APP, 0x00101, "ObservableExample");
public static void main(String[] args) {
// 创建一个数据观察者
DataObservable<String> dataObservable = new DataObservable<>();
// 创建观察者并注册到数据观察者
Observer<String> observer = (data) -> {
HiLog.info(LABEL, "Data changed: %{public}s", data);
};
dataObservable.addObserver(observer);
// 模拟数据变化,并通知观察者
dataObservable.notifyDataChanged("New data");
// 移除观察者
dataObservable.removeObserver(observer);
// 再次模拟数据变化,但由于观察者已被移除,不会收到通知
dataObservable.notifyDataChanged("Another data");
}
}
在上述示例中,我们创建了一个 DataObservable 对象,并注册了一个观察者。当数据发生变化时,我们使用 notifyDataChanged 方法通知观察者。观察者在收到通知后,执行相应的逻辑。
需要注意的是,鸿蒙OS的具体框架和组件可能有不同的实现方式,上述示例是一个简单的演示。在实际的开发中,你可能需要根据具体的需求和框架文档来使用数据观察者。
转载请注明出处:http://www.pingtaimeng.com/article/detail/2893/鸿蒙OS