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

고수분들 강제종료에 관해서 질문좀드릴게요

0 추천
어플이 강제종료되고나서 어플 켜면 처음화면이 나오는데 강제종료후에도 종료전 액티비티나오게 하려면 어떻게해야되나요???
가위바위보 (300 포인트) 님이 2013년 5월 25일 질문

1개의 답변

+1 추천
 
채택된 답변
강제종료라는 게 어플 관리 창에서 강제종료를 의미하시는건가요? 강제종료 또는 finish() 함수를 호출하셨다면 그 액티비티 전체가 사라집니다. 다음 번 어플 실행 때 그 액티비티의 새로운 객체로 onCreate() 함수가 호출이 되므로, 처음 화면이 나오는 게 당연할 껍니다.
두부고기 (3,820 포인트) 님이 2013년 5월 25일 답변
가위바위보님이 2013년 5월 28일 채택됨
그럼 게임하다가 중간에 이어하기같은 기능을만들려면 어떻게해야하나요???
안드로이드 생명주기에 대해 다시 훑어보시는 걸 추천합니다. 생명주기 정보에 의하면, 액티비티가 생성되면, 먼저 onCreate() 함수가 호출이 되고, 그다음 onStart() 함수가 호출이 되고, 마지막으로 onResume() 함수가 호출이 되면서 액티비티가 표시가 됩니다.

Dialog 상자나 팝업 창이 떠서 현재 액티비티가 가려진다면, onPause() 호출이 되구요. 이 상태에서 액티비티로 돌아가면 onResume()가 다시 호출됩니다.

홈 버튼을 누르거나, 다른 액티비티가 호출되어서 현재 액티비탁 완전히 보이지 않을 때는 먼저 onPause() 함수가 호출된 뒤에, onStop() 함수가 호출이 됩니다. 이 상태에서 다시 현재 액티비티로 돌아간다면, onRestart() 함수로 호출, omStart() 호출, 그리고 다시 onResume() 함수가 호출이 됩니다.

이 호출 순서와 항목들을 참고해서 구현하시면 될 듯 싶습니다.

게임을 하다 홈 버튼을 눌렀다면, onPause()과 onStop 함수에서 적절한 조치를 취해주시고, onRestart(), onStart(), onResume() 함수에 다시 게임 재개를 하기 위한 준비 및 조치를 취하면 될 거 같습니다.
우선 답변해주셔서 정말정말 감사합니다.
답변보고 다시한번 공부해봤지만 제가 원하는데로 되지가않네요..
제가 원하는건 홈버튼을 눌렀다가 킬러로 어플을 죽여도 어플을 다시켜면 전에 하던걸 이어서 하게하고 싶은건데 어떻게 해야할지를 모르겠네요... 혹시 힌트를 조금 주실 수 있으신가요ㅠㅠ
킬러로 앱을 죽인다는 건 즉 OS가 강제로 앱의 finish() 함수를 부르는 걸 의미합니다. finish()함수가 호출되면 아시다시피 그 앱의 액티비티가 파괴되므로 처음화면이 들어옵니다. 이건 어쩔 수 없습니다.

한가지 방법은 onFinish()함수를 만들어 finish()함수가 호출 될 시, 다음에 켜질 때 필요한 다시 로드할 수 있는 조치를 취해주는 거 밖에 없습니다. 이렇게 한들 처음화면이 나오는 걸 막을 수 없을껍니다.
...