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

갤럭시 누가(7.0) 잠금화면 풀면 onCreate 가 호출 됩니다.

0 추천
갤럭시 누가 에서 앱 실행 화면에서 화면잠금 버턴을 눌러 화면잠금한 후 바로 잠금화면을 풀면

MainActivity 의 onCreate 가 다시 호출 됩니다.ㅠ

이상하게도, 갤럭시 누가(7.0) 이전 버전의 기기에서는 해당 현상이 발생하지 않고 있습니다.

onCreate 에서 savedInstanceState 의 값을 다시 확인해보니 null 이 아니더라구요.

혹시나 화면잠금에서 화면변경관련 이벤트가 발생하는지 확인해보니 그것도 아니더라구요.

AndroidManifest.xml 의 MainActivity   configChanges 속성도 "keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|density"  설정해놓고

MainActivity.java 에도 onConfigurationChanged 를 작성해 놓은 상태입니다.

해당 현상에 대해서 알고 계신 분들 해결방법 좀 알려주세요.ㅠ
마시멜로로 (290 포인트) 님이 2017년 8월 23일 질문

2개의 답변

0 추천
삼성 디바이스에서의 라이프사이클은 타 회사 기기들과 조금 다른 방식의 라이프사이클을 가지고 있습니다.

잠금 해제 상황 이외에도 중복해서 onCreate()가 호출될 수 있다는 점을 감안하고 코드를 설계하셔야 합니다.

최근 실행 어플 목록 / 앱 실행 아이콘 재 클릭 등 여러가지 상황에서 예상하지 못한 라이프사이클이 발생하는 경우가 종종 있습니다.
minor (13,710 포인트) 님이 2017년 8월 24일 답변
minor님이 2017년 8월 24일 수정
0 추천

메모리 문제때문에 시스템이 앱을 정리하는건 아닌지요?

폰을 껏다가 켜고 해당 앱만 올린뒤에 잠금화면 들어갔다가 풀었을때도 다시 onCreate()를 타는지

로그를 찍어보시기 바라며,

그래도 동일하다면 해당 앱에서 메모리 사용량을 모니터링 해보시는 것도 한 방법입니다.

 

onSaveInstanceState() 이벤트에서 현재 화면 정보들을 저장후

onCreate()에서 savedInstanceState 를 가지고 화면복구를 하는게 정석이긴 합니다.

그렇게 되면 어떤 상황에서도 해당 화면이 유지가 되긴 합니다.

 

익명사용자 님이 2017년 8월 30일 답변
...