Mosby 3.0.3으로 이전했으며 현재는 PresenterManager
의 능력을 조사했습니다. Activity, Fragment 및 ViewGroup과 관련하여 발표자의 평생을 명확하게 밝히지는 못했습니다. ViewGroupMvpDelegateImpl
, FragmentMvpDelegateImpl
및 ActivityMvpDelegateImpl
을 살펴본 결과 발표자가 종료 될 때 100 % 확신 할 수 없었습니다.Mosby 3의 발표자 평생 MVP
는 지금까지 내가 기본 keepPresenterInstance
및 keepPresenterOnBackstack
에 의해 이해 항상 true이며 우리는 이러한 상황을 : 그것은 조각이 가기 backstack 또는 전체 프로세스가 종료에서 제거 될 때까지
조각의 발표자가 존재한다. 이 경우에는 내가
FragmentMvpDelegateImpl
에서 방법에 의존 :protected boolean retainPresenterInstance() { Activity activity = getActivity(); if (activity.isChangingConfigurations()) { return keepPresenterInstanceDuringScreenOrientationChanges; } if (activity.isFinishing()) { return false; } if (keepPresenterOnBackstack && BackstackAccessor.isFragmentOnBackStack(fragment)) { return true; } return !fragment.isRemoving(); }
그러나 childFragmentManagers 또는 (또 다른 조각 내부) FragmentPagerAdapter에서 조각에 대한 조각은 어떻습니까?
활동 및 ViewGroup의 발표자는 활동이 완료되지 않았거나 전체 프로세스가 종료 될 때까지 존재합니다. 이 경우에는 내가
ActivityMvpDelegateImpl
에서 방법에 의존 :static boolean retainPresenterInstance(boolean keepPresenterInstance, Activity activity) { return keepPresenterInstance && (activity.isChangingConfigurations() || !activity.isFinishing()); }
모든 ViewGroups이 사실인가, 그들이 거주하는 곳?
그런 질문을하는 이유는 우리 앱에서는 조각, 사용자 정의 뷰 그룹의 액티비티, 프래그먼트, 프래그먼트가 있고 모두 프리젠 테이션을 가지고 있기 때문입니다. 아이디어는 발표자의 거대한 자원을 detachView(final boolean retainInstance)
에 공개하지만 메모리에있는 가벼운 - inMemory 캐시와 같은 메모리를 유지하여보기가 백 스택에서 복원 될 때 다시 사용하는 것입니다.
마찬가지로 Dagger2를 사용하며 적절한 하위 구성 요소를 출시해야하는 시점을 이해하는 것이 중요합니다.
종합적인 답변을 주셔서 감사합니다. Mosby 문서에서 이러한 주석을 보는 것이 편리 할 것입니다. –