BaseMvpFragment.java 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package com.edufound.reader.base;
  2. import android.content.Intent;
  3. import android.os.Bundle;
  4. import androidx.lifecycle.Lifecycle;
  5. import autodispose2.AutoDispose;
  6. import autodispose2.AutoDisposeConverter;
  7. import autodispose2.androidx.lifecycle.AndroidLifecycleScopeProvider;
  8. public abstract class BaseMvpFragment<T extends BasePresenter> extends BaseFragment implements BaseView {
  9. protected T mPresenter;
  10. @Override
  11. public void onDestroyView() {
  12. super.onDestroyView();
  13. if (mPresenter != null) {
  14. mPresenter.detachView();
  15. }
  16. super.onDestroyView();
  17. }
  18. /**
  19. * 绑定生命周期 防止MVP内存泄漏
  20. *
  21. * @param <T>
  22. * @return
  23. */
  24. @Override
  25. public <T> AutoDisposeConverter<T> bindAutoDispose() {
  26. return AutoDispose.autoDisposable(AndroidLifecycleScopeProvider
  27. .from(this, Lifecycle.Event.ON_DESTROY));
  28. }
  29. public void toNextActivity(Class clazz) {
  30. Intent intent = new Intent(getActivity(), clazz);
  31. startActivity(intent);
  32. }
  33. public void toNextActivity(Class clazz, Bundle bundle) {
  34. Intent intent = new Intent(getActivity(), clazz);
  35. intent.putExtra("params_bundle", bundle);
  36. startActivity(intent);
  37. }
  38. }