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

activirty간 전환에 대해 질문이있습니다.

+1 추천
지금 현재 메인 액티비티에서 스타트 버튼을 누르면 시간이 흐르고 있구요

그상태에서 카메라 버튼을 누르면

intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, REQUEST_INTENT_TYPE.CAMERA.ordinal());

해준후에

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

로 받고있습니다.

두개의 기종으로 테스트 중인데 문제가 없는 기종에서의 흐름은

어플시작-메인액티비티에서 핸들러로 타이머시작 시간 흐름-카메라버튼클릭-사진찍고 저장하면-다시 메인액티비티로

돌아옴-돌아온 상태가 이전의 상태 그대로 시간이 흐르고있음 이런식인데요

다른 기종으로 테스트를 해보면 흐름이 다른것이

어플시작-메인액티비티에서 핸들러로 타이머시작, 시간흐름 - 카메라버튼클릭-사진찍고저장(저장까지는 같음)이후에 확인이나 뒤로가기 버튼을 누르는경우 - ondestroy() 함수가 호출이 되어서 이전에 흐르고 있던 타이머가 멈춰버립니다

ondestroy에서 타이머를 cancel해주고 있습니다. 왜 이런 차이가 있는걸까요

ondestroy 함수로 보내고 싶지 않으면 어떻게 해야할까요.

아시는분 계시면 가르켜주시면 고맙겠습니다.
익명사용자 님이 2013년 7월 4일 질문

1개의 답변

0 추천

다른 기종이라는 것이 아마도 삼성단말일 것 같은데

기본 카메라앱이 orientation을 바꿔버려서 activity가 재생성 되는 경우입니다.

메니페스트 android:configChanges 를 설정해주세요.

하지만, 원론적으로 사진찍는동안 해당 액티비티가 destroy될 수 있는 여러가지 경우가 있으므로

이를 염두에 두고 시간을 저장했다 다시 돌아올 때 복구해서 차이를 계산하는 방식으로 구현하는 것이 더 적합합니다.

b22n (22,940 포인트) 님이 2013년 7월 4일 답변
질문을 작성하고 구글링으로 검색하다 답변해주신 내용을 다른곳에서 발견해서 해봤더니 해결이 됐습니다. 혹시 저와 같은 문제를 가지고 계신분이 있으시다면 위에 답변 해주신분이 정확하게 답변을 해주셨습니다.ㅎ 감사합니다.
...