В шаблоне проектирования MVP, какова цель использования softReference для View в Presenter? - PullRequest
0 голосов
/ 20 мая 2019

Когда я использую шаблон проектирования MVP в Android, некоторые люди предлагают использовать SoftReference для просмотра в BasePresenter.Какова цель этого пути?

Я слышал, что он может избежать возникновения ООМ, но почему?Если я использую StrongReference для View, я устанавливаю NULL для представления при выполнении метода Activity onDestroy(), это не то же самое?* метод будет выполнен.Не так ли?

1.Использование SoftReference:

    public abstract class BasePresenter<T>{

       private SoftReference<T> mSoftView;

       public void attachView(T view) {
           mSoftView = new SoftReference<>(view);
       }

       public void detachView() {
           if (mSoftView != null){
               mSoftView.clear();
               mSoftView = null;
           }
       }

       protected T getView(){
           return mSoftView.get();
       }
}

2.Использование StrongReference:

    public abstract class BasePresenter<T>{

       private T mView;

       public void attachView(T view) {
          mView = view;
       }

       public void detachView() {
          mView = null;
       }

       protected T getView(){
          return mView;
       }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...