dengyin2000 / AndroidFlux

android flux demo using greenrobot Eventbus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AndroidFlux

标签(空格分隔): android flux greenrobot eventbus


关于android上的flux实现请看android-flux-todo-app, 这个例子中使用的是otto eventbus,如果遇到网络请求等异步线程的话,需要自己来做这块,他的建议是放在ActionsCreator来做异步线程操作,然后再传到主线程中执行Store操作,然后再到View。这样感觉有点别扭,感觉更好的方式应该是把Store操作放在异步线程中。

greenrobot的Eventbus有个非常好的特性,就是支持Event是在那个线程中执行,比如主线程或者后台线程等。所以这里可以很方便的指定Store的执行在后台线程。

@Override
public void onEventAsync(Action storeAction) {
    long id;
    switch (storeAction.getType()) {
        case TodoActions.TODO_CREATE:
            String text = ((String) storeAction.getData().get(TodoActions.KEY_TEXT));
            create(text);
            try {
                Thread.currentThread().sleep(10000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            emitStoreChange();
            break;
    }
}

Store操作完之后通知View更新时指定Event在主线程中执行。

public void onEventMainThread(UIUpdateEvent event) {
    updateUI();
}

Android Flux

About

android flux demo using greenrobot Eventbus


Languages

Language:Java 100.0%