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