|
|
@@ -19,14 +19,10 @@ import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 利用反射,BaseMVPActivity将会查找子类中有{@link InjectPresenter}注解的成员变量,
|
|
|
- * 筛选出父类是{@link BasePresenter}的成员变量,对它们进行实例化,此时BaseMVPActivity的子类即拥有了
|
|
|
- * 具体Presenter的引用,如拥有了LoginPresenter的引用,可以调用具体Presenter的具体方法;
|
|
|
- * 然后BaseMVPActivity调用{@link BasePresenter}的一个方法把自身的{@link IView}类型引用
|
|
|
- * 传递给{@link BasePresenter},这样{@link BasePresenter}的子类也就拥有了{@link IView}类型引用;
|
|
|
- * 注意:因为注解是在BaseMVPActivity的子类声明的,子类实现了{@link IView}的子类如ILoginView,
|
|
|
- * 这个子类是一个拥有特殊回调接口的,如拥有登录成功、登录失败等接口,
|
|
|
- * 也就是说把具体的子类传this引用的时候,把具体的ILoginView引用传给了具体的Presenter,并通过{@link BasePresenter}
|
|
|
- * 的泛型让getView方法返回具体的ILoginView,所以{@link BasePresenter}的子类还可以访问到ILoginView的特殊方法
|
|
|
+ * 筛选出父类是{@link BasePresenter}的成员变量,对它们进行实例化
|
|
|
+ * 然后BaseMVPActivity调用{@link BasePresenter}的一个方法把自身的{@link androidx.lifecycle.LiveData}类型引用
|
|
|
+ * 传递给{@link BasePresenter},这样{@link BasePresenter}的子类就可以调用相应Activity的LiveData;
|
|
|
+ *
|
|
|
*/
|
|
|
public abstract class BaseMVPActivity extends BaseActivity implements IView {
|
|
|
private List<Method> mDataMethodList = new ArrayList<>();
|
|
|
@@ -94,6 +90,7 @@ public abstract class BaseMVPActivity extends BaseActivity implements IView {
|
|
|
onDataResult(result);
|
|
|
}
|
|
|
};
|
|
|
+ // liveData也可以在Presenter创建,然后提供方法给Activity获取
|
|
|
MutableLiveData<DataResult> liveData = new MutableLiveData<DataResult>();
|
|
|
liveData.observe(this, observer);
|
|
|
|