2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

executePendingTransactions

작성: sangseek | 게시 날짜: 2026/01/04 | 조회수: 35
[ 편집불가 ]

executePendingTransactions는 주로 Android의 FragmentManager에서 사용하는 메소드로, "보류(pending) 중인 프래그먼트 트랜잭션들을 즉시 실행"한다는 뜻입니다. 주요 의미와 동작은 다음과 같습니다. - 무엇을 하는가 프래그먼트 트랜잭션(FragmentTransaction)을 commit()으로 예약했을 때(즉시 실행되지 않고 메시지 큐에 쌓여 있을 때), executePendingTransactions()를 호출하면 그 큐에 대기 중인 모든 트랜잭션을 즉시 동기적으로 실행합니다. - 동작 방식 요약 - commit()은 기본적으로 메인 스레드의 다음 루프(Handler 메시지)에 트랜잭션을 큐잉합니다. - executePendingTransactions()는 그 큐에 있는 작업들을 지금 실행하도록 강제합니다. - 실행이 완료될 때까지 반환하지 않습니다(동기 호출). - 반환값(플랫폼/버전에 따라) - 일반적으로 실행된 트랜잭션이 있었으면 true, 없으면 false를 반환하는 구현이 많습니다. - 제약/주의사항 - 반드시 메인(UI) 스레드에서 호출해야 합니다. - 동기 실행이므로 성능에 영향을 줄 수 있고, 예상치 못한 라이프사이클 변화(예: 프래그먼트의 즉시 생성/시작/정지)가 발생할 수 있습니다. - 필요 없이 자주 호출하면 코드 복잡성과 버그(재진입성 문제 등)를 유발할 수 있습니다. - 트랜잭션 관련 상태가 이미 저장된 후(onSaveInstanceState 후) 호출하면 상태 손실이나 예외가 발생할 수 있으므로 주의해야 합니다(상태 손실을 허용하는 commitAllowingStateLoss와 관련된 고려 필요). - 대안/권장 사용법 - 가능하면 commit()와 commitNow()/commitNowAllowingStateLoss() 같은 즉시 실행 API를 특정 트랜잭션에 사용하거나, 애플리케이션 구조를 바꿔 동기 실행을 피하는 것이 좋습니다. - executePendingTransactions()는 특정 상황에서(예: 테스트나, 직후에 바로 프래그먼트가 필요할 때)만 제한적으로 사용하세요. 간단히 말하면, executePendingTransactions는 "나중에 실행되도록 예약된 프래그먼트 트랜잭션들을 지금 당장 실행하게 만드는 동기 호출"입니다.
내용이 부정확하다면 싫어요를 누르세요.