우선, 보유 조각에 대한 내 게시물 을 확인하십시오 . 도움이 될 수 있습니다.
이제 귀하의 질문에 대답하십시오 :
프래그먼트도 뷰 상태를 유지합니까 , 아니면 구성 변경시 다시 생성됩니까? 정확히 "보존"된 것은 무엇입니까?
예, Fragment
의 상태는 구성 변경 전체에서 유지됩니다. 특히 "보유"는 구성 변경시 프래그먼트가 파괴 되지 않음을 의미합니다 . 즉, 구성 변경으로 인해 기본 Fragment
이 손상 되더라도 가 유지 됩니다 Activity
.
사용자가 활동을 떠날 때 프래그먼트가 파괴됩니까?
Activity
s 와 마찬가지로 Fragment
메모리 리소스가 부족한 경우 시스템 에서 s가 손상 될 수 있습니다. 구성 변경을 통해 프래그먼트가 인스턴스 상태를 유지하는지 여부는 시스템 Fragment
을 종료 한 후 시스템이 파괴되는지 여부에 영향을 미치지 않습니다 Activity
. Activity
(예 : 홈 버튼을 눌러) 나가면 Fragment
s가 손상되거나 파괴되지 않을 수 있습니다. Activity
뒤로 버튼을 눌러 (따라서을 호출 finish()
하고 효과적으로 파기 Activity
) 를 떠나면 Activity
첨부 된 모든 파일 Fragment
도 파기됩니다.
백 스택에서 조각으로 작동하지 않는 이유는 무엇입니까?
거기가 지원되지 않는 이유는 여러 가지 이유가있을 수 있지만 나에게 가장 명백한 이유는이 때문이다 Activity
에 대한 참조를 보유 FragmentManager
하고,이 FragmentManager
가기 backstack을 관리합니다. 즉, 당신이 선택하는 경우에 상관없이 당신의 유지 Fragment
들 또는,하지 Activity
(따라서 FragmentManager
의 가기 backstack)는 구성 변경에 파괴됩니다. 작동하지 않을 수있는 또 다른 이유는 유지 된 조각 과 유지되지 않은 조각이 동일한 백 스택에 존재할 수 있으면 문제가 발생할 수 있기 때문 입니다.
이 방법을 사용하는 것이 적합한 사용 사례는 무엇입니까?
보존 된 조각은 상태 정보 (특히 스레드 관리)를 활동 인스턴스에 전파하는 데 매우 유용 할 수 있습니다. 예를 들어, 조각은 Thread
또는 AsyncTask
의 작업을 관리 하는 인스턴스의 호스트 역할을 할 수 있습니다 . 자세한 내용 은이 주제에 대한 내 블로그 게시물 을 참조하십시오.
일반적으로, 나는 유사하게 사용하여 취급 할 onConfigurationChanged
와 Activity
당신이 / 구현 올바르게 방향 변경을 처리하기에 너무 게으른 이유만으로 미봉책으로 사용하지 마십시오 .... 필요할 때만 사용하십시오.