zoukankan      html  css  js  c++  java
  • LiveEventBus

    先简单看看 LiveEventBus 是怎么使用 LiveData 的。

    public final class LiveEventBus {

    public synchronized <T> Observable<T> with(String key, Class<T> type) {
    if (!bus.containsKey(key)) {
    bus.put(key, new LiveEvent<>(key));
    }
    return (Observable<T>) bus.get(key);
    }

    private class LiveEvent<T> implements Observable<T> {

    private final LifecycleLiveData<T> liveData;

    LiveEvent(@NonNull String key) {
    this.key = key;
    this.liveData = new LifecycleLiveData<>();
    }

    @Override
    public void observe(@NonNull final LifecycleOwner owner, @NonNull final Observer<T> observer) {
    if (ThreadUtils.isMainThread()) {
    observeInternal(owner, observer);
    } else {
    mainHandler.post(new Runnable() {
    @Override
    public void run() {
    observeInternal(owner, observer);
    }
    });
    }
    }

    @MainThread
    private void observeInternal(@NonNull LifecycleOwner owner, @NonNull Observer<T> observer) {
    ObserverWrapper<T> observerWrapper = new ObserverWrapper<>(observer);
    observerWrapper.preventNextEvent = liveData.getVersion(http://www.amjmh.com/v/BIBRGZ_558768/) > ExternalLiveData.START_VERSION;
    liveData.observe(owner, observerWrapper);
    }

    @Override
    public void post(T value) {
    if (ThreadUtils.isMainThread()) {
    postInternal(value);
    } else {
    mainHandler.post(new PostValueTask(value));
    }
    }

    @MainThread
    private void postInternal(T value) {
    liveData.setValue(value);
    }

  • 相关阅读:
    画图软件
    万用表
    传导发射
    MOT
    Docker
    第十二章、私营部门和第三部门中的采购
    第十一章、公共部门中的采购
    第十章、部门与行业环境
    第九章、信息与通信技术系统
    第八章、组织的采购职能
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11384644.html
Copyright © 2011-2022 走看看