2011-08-06 5 views
17

onResume() 이후에 항상 호출되는 콜백이 있습니까? AFAIK, onResume() 이후 레이아웃의 모든 뷰가 렌더링되었으므로 크기를 측정 할 수 있기 때문에 필자가 필요합니다.Android - onResume() 직후에 호출되는 콜백이 있습니까?

감사합니다.

+1

이 아, 여기 우리가 간다 : ViewTreeObserver 아마이 할 수있는 올바른 방법입니다 : http://stackoverflow.com/a/7735122/338479 –

답변

25

Activity | Android Developers

protected void onPostResume() 

가입일 : API 레벨 (onResume()가 호출 된 후) 활동 재개가 완료되면 호출 한

. 어플리케이션은 일반적으로이 메소드를 구현하지 않습니다. 응용 프로그램 재개 코드가 실행 된 후 시스템 클래스가 최종 설정을 수행하기위한 것입니다.

파생 클래스는이 메소드의 수퍼 클래스 구현으로 호출해야합니다. 그렇지 않은 경우 예외가 발생합니다.


또한 (동일한 링크)에 관심이있을 수 있습니다

public void onWindowFocusChanged (boolean hasFocus) 

가입일 : 활동 이익의 현재 창 또는 포커스를 잃었을 때 호출 API 레벨 1

. 이 활동이 사용자에게 표시되는지 여부를 나타내는 가장 좋은 지표입니다. 기본 구현은 키 추적 상태를 지우므로 항상 호출되어야합니다.

이것은 액티비티 라이프 사이클과 독립적으로 관리되는 글로벌 포커스 상태에 대한 정보를 제공합니다. 따라서 포커스 변경은 일반적으로 라이프 사이클 변경과 관련이 있지만 (중지 된 액티비티에는 일반적으로 윈도우 포커스가 적용되지 않음), 여기에있는 콜백과 onResume과 같은 다른 라이프 사이클 메소드의 특정 순서에 의존해서는 안됩니다().

그러나 일반적으로 재개 된 액티비티에는 창 포커스가 있습니다 ... 입력 포커스를받는 다른 대화 상자 나 팝업을 표시하지 않는 한, 액티비티 자체에는 포커스가 없습니다. 다른 창에는 포커스가 없습니다. . 마찬가지로 시스템은 전경 활동을 일시 중지하지 않고 일시적으로 창 입력 포커스를 취하는 시스템 수준 창 (예 : 상태 표시 줄 알림 패널 또는 시스템 경고)을 표시 할 수 있습니다.

매개 변수

hasFocus Whether the window of this activity has focus. 
+2

감사의 onWindowFocusChanged 트릭은 않았다. 상황이 여전히 onPostResume() 에서조차 측정 할 수없는 것 같습니다 ... –

+1

내가 정말로 * 좋아할만한 것은 레이아웃 후에 표시되기 전의 콜백입니다. –

+2

@EdwardFalk : ViewTreeObserver.addOnGlobalLayoutListener() –

관련 문제