당신은 각
에 기각 호출 할 필요가 없습니다 줘야 해. 이 DialogFragment를 고려
public class FragDialog extends DialogFragment{
public ProgressDialog _dialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
//this.dismiss(); <-- The dialogs may be dismissed here
}
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
_dialog = new ProgressDialog(getActivity());
return _dialog;
}
@Override
public void onPause() {
super.onPause();
// <--------- You may overload onPause
}
}
이처럼 호출 일반적으로 fragmentmanager를 사용하여 활동에 표시됩니다 어떤 : 당신이 실제로 DialogFragment가 onPause에서 무엇을 변경할 수 있습니다
FragmentManager fm = getSupportFragmentManager();
FragDialog fragDialog = new FragDialog();
fragDialog.show(fm, "my_tag");
참고. 활동이 onPause를 호출하면이 onPause도 호출됩니다.
작업이 다시 시작되면 this.dismiss()를 사용하여 onPause() 대화 상자를 닫아도 작업이 수행되지 않습니다. 대화 상자를 다시 시작하기 때문입니다. (이것은 savestate가 onPause 이전에 저장 되었기 때문에 발생한다고 생각합니다.)
그러나 코드에 표시된 것과 같이 savedInstanceState (이력서)를 감지하면 onCreate에서 대화 상자를 안전하게 닫을 수 있습니다.
을 내가 업데이트 한 대답 – quinestor