마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

onStart 콜백 메소드의 정확한 호출 시점이 어떻게 되는걸까요?

0 추천
좀 복잡한 문제를 겪고 있습니다

ViewPager 위젯을 사용중입니다 ViewPager는 내부의 여러 페이지를 가지고 있고 한번에 하나의 페이지만 보이며 좌우로 밀어서 페이지를 넘겨볼 수 있도록 하는 위젯인데요, 내부의 페이지를 프래그먼트로 사용하여 구성했습니다,

좌우로 페이지를 넘겨서 페이지가 바뀔때마다 보여지는 현재 페이지(프래그먼트)에서의 작업 결과를 구하기 위해서 페이지가 바뀌는 시점을 알아야해서 부모뷰의 onCreateView()에서 ViewPager의 onPageChange 이벤트에 대해 이벤트 리스너를 설치했는데, 이 일단 동작은 합니다

그런데 화면을 돌려 레이아웃이 새로 구성이 되면 좀 어려운 문제가 발생합니다, 에초 부모의 onCreateView에서 자식인 ViewPager에게 이벤트 리스너를 설치한것인데, 화면을 돌려서 새로 구성될때에는 최초 이벤트 발생이 너무 빨라서 보여지는 페이지(프래그먼트)의 onCreateView 초기화가 되기도 전에 참조해서 작업 결과를 받아오려고 해서 에러가 발생하더라구요

화면 새로 구성이 되면서 자동적으로 발생하는 최초 onPageChange 이벤트 발생을 늦춰보려고 부모에서 ViewPager로의 이벤트 리스너 설치를 부모의 onCreateView 에서 onStart 시점으로 바꾸었는데 동작은 잘 됩니다만 꼼수를 부린것 같아 좀 찝찝합니다

원래 onStart 이벤트 발생 시점이 그외 모든 (동적으로 페이지가 생성되는 ViewPager의 최초 자식까지) 뷰의 초기화가 완료된 시점으로 정의되어있는 걸까요?

또 onStart 시점에 이벤트 리스너를 설치하는게 이상하지는 않는지요?
생각꿈들 (390 포인트) 님이 2017년 3월 9일 질문
생각꿈들님이 2017년 3월 9일 수정

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...