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

MainActivity 클래스와 onCreate() 질문

0 추천
onCreate()는 화면 가로 세로 전환시 또 호출된다는 것을 알았는데요.

 

MainActivity는 일부로 부르지 않는 이상 딱 1번 실행되나요?

 

아니면 아예 가로 세로 전환시 MainActivity가 호출되는건가요?
단초 (1,450 포인트) 님이 2015년 7월 9일 질문

1개의 답변

0 추천
 
채택된 답변
MainActivity가 어떤 것인지 먼저 이야기 해야할 것 같내요..

onCreate() 인벤트 처리 함수 입니다. 어떤 조건 상황이 발생하면 실행하는 (호출되는) 것이지요.

MainActivity는 이런 이벤트 처리함수나 기타의 함수 단위의 존재는 아닙니다.

화면 저체의 구성을 담당하는 객체(Object, class)지요.

이런 객체는 생성, 소멸이 있습니다.

호출은 생성될때도 호출되고, 소멸될때도 호출되고 기타 다른 이 object가 관여해야 할 일이 생기면 호출되지요.

이런 오브젝트는 내부에 어떤 정보를 담고있는 data와 어떤 일을 수행해야하는 코드가 같이 들어 있는 존재지요.

따라서 호출의 시점이라고 할만한 특별한 경우가 있는 경우는 드물며 대부분은 필요가 느껴지실때 만들어졌다가 필요가 없어질때 삭제 되어지는 존재입니다.

가로세로 전환시 MainActivity가 호출 -> 가로세로 전환시 MainActivity는 소멸되었다가 다시 생성됩니다.

onCreate 는 create 이벤트가 발생했을때 호출되어지지요, 따라서 생성이 일어났다는 이벤트가 발생하고 이 이벤트에 따라서 불려져서 실행됩니다.

생성을 하기위해선 기존에 같은 것이 있다면 소멸시키고 다시 생성하겠지요.

아무튼 이런 부분은 좀더 공부가 필요해 보이는 부분으로 보입니다.
컴러기 (22,230 포인트) 님이 2015년 7월 9일 답변
단초님이 2015년 7월 9일 채택됨
감사합니다.^^ 질문 하나 더있습니다. ㅜㅜ 가로세로 전환시 MainActivity가 호출 (클래스 안에 리스너 생성) -> onCreate 안에서 리스너 센서 리스너 레지스터함 -> onDestroy에서 리스너 센서 리스너 해제 처리 -> 가로세로 전환시 MainActivity는 소멸하여 다시 생성하면 센서 리스너는 결국 1개가 작동할까요? onDestroy처리를 안했을 때 계속 센서 리스너가 2개가 동작하는 속도를 보인다는 버그 재보가 있습니다...ㅜㅜ 제 기기에서는 많은 테스트 중 딱 1번 있었습니다.
예전에 제가 했던개발에서 단초님이 말씀하신 문제가 발생했던적이 있었는데요. 최근에는 그런부분이 많이 나아진것 같긴한데 아직도 있나보내요.
아마 리슨너의 문제는 아닌 것같습니다. 저도 궁금하기도 해서 그내용으로 좀더 찾오밨는데요 대부분은 os레벨의 오작동으로 보는 듯합니다.
제조사 마다 약간씩 다른 것을 보면요. 펌의 오류거나 서비스의 오류인듯해요.
아무튼 그때는 singletop 등을 사용해서 처리 했었습니다.
...