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

앱실행중 홈버튼후 타작업 후 복귀시 초기화(삼성폰 됨, LG폰 안됨) 문제

0 추천
메세지 전달이 안되었던 문의는 잘 해결 되었습니다.

메세지 전달이 되어도 중간에 다른 exception 이 발생하면,

UI가 업데이트되는 코드가 실행되지 않았던 문제였습니다.

 

그런데, 수정이 된 후 문제가 하나 더 생겼습니다.

홈버튼 누른 후 다른 작업을 하다가 홈버튼 길게 눌러서 목록 중에

앱을 다시 실행하면 화면이 초기화가 되어 나옵니다.

실제로 초기화가 되는 것인지, 앱이 하나더 실행된 것인지도 모르겠네요.

그래서 UI에 써두었던 정보가 사라져서 문제가 됩니다.

 

1. 타 작업 후 실행복귀시 앱초기화인지 앱 추가 실행인지 어떻게 알 수 있을까요?

2. 앱초기화라면 갱신해줘야할테인데 어떤 방법이 있나요?

3. 앱추가 실행이라면 현재앱을 종료하고 이전앱의 상태로 복원해야할텐데

 어떠한 방법이 있을까요?

 

현재 앱의 상태로 갤럭시 노트2에서는 복원이 잘 되는 반면, LG폰에서는 복원이 되지않아

수정이 필요한 거 같습니다.

LG폰 자체의 문제가 아니라는 것은 계산기 같은 것을 실행하고 복귀해보면 그대로 복원되어

있는 것으로 보았을 때, 어떤 서비스 차이가 있는거 같습니다.
흠냥 (180 포인트) 님이 2014년 11월 7일 질문

2개의 답변

0 추천
onPause에서 상태를 저장하고, onResume에서 상태를 복원하세요.
익명사용자 님이 2014년 11월 7일 답변
0 추천

기본전제부터 다시 잡고 가셔야할듯하네요.

1. 타 작업 후 실행복귀시 앱초기화인지 앱 추가 실행인지 어떻게 알 수 있을까요?

-> 앱 추가실행은 없습니다. 항상 1나의 프로그램만 실행됩니다.

2. 앱초기화라면 갱신해줘야할테인데 어떤 방법이 있나요?

-> onSaveInstanceState를 쓰시면됩니다.

3. 앱추가 실행이라면 현재앱을 종료하고 이전앱의 상태로 복원해야할텐데 어떠한 방법이 있을까요?

-> 앱 추가실행은 없습니다.

 

 홈버튼을 누르면 앱이 백그라운드에 들어가서 대기를 탑니다.

 여기서부터는 OS관할이며, OS가 메모리가 적으면 알아서 백그라운드 어플을 죽이거나 메모리해제를 시킵니다.

 그러므로 홈버튼을 누른뒤 백그라운드에 들어가는 어플은 내용저장을 신뢰할수 없구요. 

홈버튼 눌럿다가 다시들어갔을때 내용이 꼭 나와야한다 하면 onSaveInstanceState에서 데이터를 새로 잡아주셔야됩니다.

삼성폰은 되는데 엘지폰은 왜 되느냐.

삼성폰이 메모리가 큰가보죠ㅎㅎ

 

http://stackoverflow.com/questions/19309595/how-to-retrieve-onsaveinstancestate-bundle-in-onresume

 

기초개발자 (24,060 포인트) 님이 2014년 11월 7일 답변
...