안드로이드 개발 질문/답변
(글 수 45,052)
onResume() 안에서 tabHost.setCurrentTab(int);를 사용해 탭 이동시 현재 엑티비티의 onPause()도 호출되지 않고
엑티비티가 꼬이는 느낌이라서 onResume() 말고 다른 곳에서 화면 전환을 해야 할거 같은데 마땅한 곳을 모르겠네요....
아니면 onResume()에서 할 수 있는 방법이 있을까요...? ㅠ
onWindowFocusChanged()를 써보려구 하는데 언제 이벤트가 발생하는지 잘 모르겠네요...
앱을 켜보니 true 떴다가 false 뜨고..onResume은 화면 보여질때 한번씩 명확하게 뜨는데
onWindowFocusChanged는 true false 값이 들어오기도 하고 어떨때 뜨는지 잘 모르겠어요...
api는 봐도 영문이라...이해를 못하겠구여...ㅠㅠㅠ
onResume 에서 하는 작업들이 버그를 발생시키는 케이스가 좀 있어서 onResume후에 불리는 다른
이벤트로 처리부분을 옮기고 싶은데 마땅한 부분을 모르겠네요..
엑티비티가 꼬이는 느낌이라서 onResume() 말고 다른 곳에서 화면 전환을 해야 할거 같은데 마땅한 곳을 모르겠네요....
아니면 onResume()에서 할 수 있는 방법이 있을까요...? ㅠ
onWindowFocusChanged()를 써보려구 하는데 언제 이벤트가 발생하는지 잘 모르겠네요...
앱을 켜보니 true 떴다가 false 뜨고..onResume은 화면 보여질때 한번씩 명확하게 뜨는데
onWindowFocusChanged는 true false 값이 들어오기도 하고 어떨때 뜨는지 잘 모르겠어요...
api는 봐도 영문이라...이해를 못하겠구여...ㅠㅠㅠ
onResume 에서 하는 작업들이 버그를 발생시키는 케이스가 좀 있어서 onResume후에 불리는 다른
이벤트로 처리부분을 옮기고 싶은데 마땅한 부분을 모르겠네요..
2011.03.14 15:16:44
Activity 생에 주기는 중요하기 때문에 그쪽을 정확하게 이해 하시는것도 좋을거 같은데요..영문이라 거리감이 생긴다면 국내 블로거 중에 잘 정리 되어 있어서 보기 편한곳도 있으니 참고해 보시는것도 좋을거 같습니다.
보통 화면에 보여지기 바로전인 onResume() 에 current data 를 활용하는게 맞아 보이는데 .. 다른 방법이 오히려 복잡함을 불러 일으킬 수 있을거 같네요..
2011.03.14 15:25:37
헌데 onResume()에서 타고 타고 들어가는 함수 로직이 있는데 그중에서 에러가 나서 앱이 죽을때와
onResume() 호출까지 완료 된 후 Activity Running... 일때 죽는것과 차이가 있나요...?
왠지 제가 만든 앱이 onCreate()나 onResume()에서 데이타 요청과 셋뷰를 모두 하니까 그 처리가 완벽히 됐을땐
문제가 없는데 익셉션 발생시 더 불안정 한거 같기도 해서 다른 이벤트 부분을 찾고 있어요....ㅠ_ㅠ
엑티비티 주기는 말씀대로 국내 블로그에서 정리된 문서를 읽어보았습니다 ^^
onResume() 호출까지 완료 된 후 Activity Running... 일때 죽는것과 차이가 있나요...?
왠지 제가 만든 앱이 onCreate()나 onResume()에서 데이타 요청과 셋뷰를 모두 하니까 그 처리가 완벽히 됐을땐
문제가 없는데 익셉션 발생시 더 불안정 한거 같기도 해서 다른 이벤트 부분을 찾고 있어요....ㅠ_ㅠ
엑티비티 주기는 말씀대로 국내 블로그에서 정리된 문서를 읽어보았습니다 ^^
2011.03.14 20:11:45
Activity life cycle 을 읽어 보시라고 한것은 그 내용이 중요한것도 있지만 상황에 맞게 그곳을 이용하라는 뜻입니다.
onCreate ~ onDestroy 안에 어느부분에서 라도 죽으면 Running Error 로서 onCreate 에서 죽는것과 onResume에서 죽는 것은 같은 경우입니다. 시스템에서 즉 ActivityManager 에서 Activity 를 관리 할때 해당 상황을 System call 해 주는데 그게 Override 해서 사용하는 onCreate ~ onDestroy 가 되는것입니다.
보통 onCreate 쪽에서 setContentView 와 각종 View의 instace 및 초기화 작업 , 및 이벤트 핸들링 , data 처리 부분을 초기화 해줍니다.
onResume 쪽에서는 화면에 보여지기 바로전이기 때문에 current 에 해당하는 data를 넣어 주는거죠..onPause 가 되면 화면에 내려가기 때문에 current data를 캐싱하고 있거나 자원을 release 해주었다가 onResume 쪽에서 다시 세팅합니다.
생에 주기를 잘 이용하면 안정적인 운영이 가능합니다. ~!!
참고로 쿼티자판이 있는 단말이나.. 화면이 가로에서 세로회전 했을때 orientation 이 바뀌는 경우 Lock Screen 을 해제 했을 경우
생에주기가 onCreate 부터 다시 불려지니 참고하시기 바랍니다.



