Jetpack之Lifecycle+MVP结合

Lifecycle+mvp

关于Lifecycle mvp 是什么 不多说

代码地址

Lifecycle+mvp 结合的作用?

主要用于其他的类能够监听 Activity Fragemnt的生命周期 ,防止内存泄露等等....

Lifecycle代码


import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.OnLifecycleEvent;

public interface BaseLifecycleObserver extends LifecycleObserver {

    @OnLifecycleEvent(Lifecycle.Event.ON_ANY)
    void onAny(LifecycleOwner owner);

    @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
    void onCreate(LifecycleOwner owner);

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    void onStart(LifecycleOwner owner);

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    void onStop(LifecycleOwner owner);

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    void onResume(LifecycleOwner owner);

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    void onPause(LifecycleOwner owner);

    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
    void onDestory(LifecycleOwner owner);
}

BasePresenter继承BaseLifecycleObserver 

package com.example.mvpdemo.base;

import com.example.mvpdemo.view.LoginView;

public interface BasePresenter<V extends BaseView> extends BaseLifecycleObserver {
    LoginView attchViews(V v);

}

  BaseActivity添加getLifecycle().addObserver(this.presenter); 这样就可以监听

 

package com.example.mvpdemo.base;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

/**
 * 抽象出绑定和解绑
 * 兼容多个 Ac 采取泛型
 *
 *
 */
public abstract class BaseActivity<V extends BaseView,P extends BasePresenter<V>> extends AppCompatActivity {

    private  V view;
    private P presenter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

         if(this.presenter==null){
             this.presenter=createPresenter();
         }
         if(this.view==null){
             this.view=createView();
         }
         if(this.presenter!=null&&this.view!=null){
             this.presenter.attchViews(this.view);
             getLifecycle().addObserver(this.presenter);
         }
    }

    protected abstract V createView();

    protected abstract P createPresenter();
    public P getPresenter(){
        return  this.presenter;
    }


}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值