6

활동에서 DialogFragment를 시작하면 DialogFragment를 닫으면 어떻게됩니까? 활동이 부활 상태인가? 또는 DialogFragment가 닫힐 때까지 다음 라인이 절대 실행되지 않도록 일반적인 java 호출과 같은 호출입니까? 때 doMoreStuff()DialogFragment가 호출 활동의 라이프 사이클에 미치는 영향

  1. 라고 :

    내 조각을 실행하는 방법은

    private void launchFragment(){ 
        ConfirmationDialog confirm = new ConfirmationDialog(); 
        confirm.show(getSupportFragmentManager(), "confirm"); 
        doMoreStuff(); 
    } 
    

    입니다 그래서 제 질문은 두 가지이다 가정? 전 또는 후에 부모 활동으로 돌아 가기 위해 조각을 닫습니다.

  2. 부모 작업으로 돌아 가기 위해 프래그먼트를 닫은 후에 부모 작업이 onResume을 통과합니까 : 그래서 일부 필드가 조각에 의해 변경되었는지에 대한 확인이있는 경우 해당 상태를 기반으로 onResume에서 작업을 수행 할 수 있습니다. 필드 다음 예와 같이

는 :

@Override 
public void onResume() { 
    super.onResume(); 
    if(dialogFragmentChangedThis){ 
     workSomeMore(); 
    } 
} 

조각은 그래서되어

setStyle(STYLE_NO_FRAME, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 

으로 실행될 전체 화면으로보기.

답변

5

doMoreStuff()는 언제 호출됩니까? 전 또는 후에 부모 활동으로 돌아 가기 위해 조각을 닫습니다.

DialogFragmentshow() 방법은 비동기 적으로 실행될 것이다 FragmentTransaction 커밋 때문에 다음 임의의 방법이 즉시 실행된다. 내가 부모 활동으로 돌아갑니다 조각을 닫으면

, 않는 부모 활동은 onResume 통과

아니,하지 않습니다, 당신의 Activity 전경에 모든 시간이기 때문에, 거기 다른 사람은 Activities입니다. 당신이 당신의 Activity에 콜백을 구현하여 그 인터페이스를 통해 Activity의 메소드를 호출하여, 간단한 Fragment의와 마찬가지로 당신이 결과를 전달하려는 경우

보통은 DialogFragment들과 함께 콜백 리스너를 사용합니다 DialogFragment에서 발생한 작업.

+0

커스텀 콜백 인터페이스를 구현하는 것에 대해 생각했지만, 더 쉬운 방법이 있었으면합니다. 라이프 사이클에 피기 백킹. –

관련 문제