我使用 LiveData + MVP 架构。
我在 onCreate 中的观点对 Presenter 说:
presenter = MyApplication.me().getAppComponent().getBasketPresenter();
presenter.attachView(this);
presenter.viewIsReady();
我的演示者LiveData
从 Room DB 获得:
LiveData<List<BasketItem>> listLiveData = MyApplication.me().getDatabase().basketDao().getAll();
之后我需要观察这个 LiveData:
listLiveData.observe(getView(), basketItems -> {
callView(view -> {
view.setData(basketItems);
});
});
在观察回调中,我可以检查view
callView 方法:
void callView(ViewAction<T> action) {
if (getView() == null) return;
action.call(view);
}
但是listLiveData.observe(getView()
呢?我怎样才能检查它?我需要写:
if (getView() == null) return;?
一般我做或做的是否正确?我在演示者中获得 LiveData 并在视图中观察?