2012-07-26 2 views
0

저는 아직 안드로이드의 라이프 사이클에 익숙하지 않습니다. 그러나, 내 응용 프로그램에서 10 초마다 실행되는 타이머가 있습니다. 화면이 회전하면 앱이 홈 화면으로 돌아가서 충돌합니다 (아마 타이머와 관련이 있음). 어떤 아이디어?OnPause onResume의 타이머는 어떻게 되나요?

+1

충돌이 발생하면 LogCat에 붉은 색 로그가 생성됩니다. 우리가 사고의 이유를 살펴보기를 원한다면 그것들을 게시하십시오. 오리엔테이션 변경은'onPause, onStop, onDestroy, onCreate, onStart, onResume'을 모두 호출한다는 것을 기억하십시오. – Eric

+0

10 초마다 뭐하고 있니? – Erol

답변

0

onPause 타이머를 중지해야합니다. 자세한 내용은 logcat 로그를 읽으십시오.

+0

나는 이것에 대해 생각했다. 그러나 내가 작은 시간 창에서 여러 번 회전한다면 너무 많은 타이머를 생성 할 것이기 때문에 문제가있을 것이다. – jimmyC

+0

그 시점에서 타이머를 취소하고 새 타이머 onResume을 만드는 것이 좋습니다. 가비지 컬렉터는 이전 타이머에 대한 참조를 삭제하면 다시 재활용해야합니다. – dineth

+0

이것에 대해 생각하고 있었지만 onResume은 onStart 이후에 발생합니다. 난 그냥 onStart (내가 처음 응용 프로그램을 시작할 때)에 새 타이머를 만들지 말고 onResume (대신)에서 타이머를 만듭니다. OnResume에 하나를 넣으면 onStart가 타이머를 생성 한 다음 onResume이 하나를 만들거나 적어도 그렇게 보입니다. 앱을 처음 시작하는 경우 항상 2가됩니다. – jimmyC

관련 문제