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

다운로드 한 사진 확인 후 돌아갈 때 어플 재시작

+2 추천
안녕하세요, 웹뷰 기반의 안드로이드 어플을 만들었는데, 잘 해결되지 않는 버그가 있어서 질문 올려봅니다.

고수님들의 답변 부탁 드립니다.

 

모바일웹을 웹뷰 기반의 어플로 보여주는 어플이구요...
첨부되어 있는 이미지 파일을 다운로드 하면 다운로드 관리자를 실행하도록 구현해 놓았습니다.
문제는 바로 이 부분인데요...

다운로드 관리자가 실행된 후, 사진을 본 후에 다시 백 버튼을 이용해서 어플로 돌아갈 때 어플이 재시작이 됩니다.

제가 스카이 폰(베가)으로 테스트를 했었는데, 스카이 폰에서는 문제가 없었는데...
사용하는 사람이 사용해 보더니 이 버그가 있다는 겁니다.
디바이스는, 갤럭시S 계열의 폰입니다.(S, S3로 테스트)

그래서 이 버그를 잡아볼라고, 지인을 통해 갤럭시S를 빌려서 테스트를 해 보니,
이 폰에서는 버그가 안나옵니다.

일관성이 있어야 원인파악이라도 정확하게 할텐데, 참 난감한 상황입니다.
 

일단, 질문드리고자 하는 내용은...
이미지 파일을 다운받아 다운로드 관리자로 넘어가서 이미지를 확인하고 백 버튼을 눌렀을 때 어플이 왜 재시작되는 지와, 이를 해결하려면 어떻게 풀어가야 하는 지 이구요...

 

여기에 덧붙여서 다른 질문 하나 더 드리자면...

웹뷰에서 <input type="file"> 이 태그에서 파일첨부 버튼이 작동 안하는 문제 때문에 이런 저런 해결방법을 찾다가, openFileChooser라는 메서드를 통해 해결을 하긴 했는데요...
이 부분에 대해서도 안드로이드 4.4.X 계열에서는 안드로이드 자체에 버그가 있어서 작동 안한다는 포스트를 본 적이 있습니다.
검색을 계속 해 봐도 별다른 해결책은 찾지 못했구요.

이 문제에 대한 해결책이 있을까요?

요게 두 번째 질문입니다.

 

안드로이드... 변수가 너무 많아서 참 어려운 듯 싶습니다.

고수님들의 시원한 답변, 기다리겠습니다.

감사합니다. :)
JustinMaru (140 포인트) 님이 2014년 7월 18일 질문

2개의 답변

0 추천

글만봐서 정확한 판단은 힘들지만 메모리문제거나 Intent Flag문제같은데요.

onSaveInstanceState와 onRestoreInstanceState를 이용해서 상태를 저장하고 로드하는 방식으로 접근해보시는것은 어떤지요?

q1212 (26,020 포인트) 님이 2014년 7월 18일 답변
먼저, 답변 주셔서 감사드립니다.
상태 저장이라 하시면, 다운로드 관리자로 넘어가기 전의 URL을 저장했다가 다시 어플이 활성화 되었을 때 그 URL을 로드하도록 구현하는 걸 말씀하시는지요?
(게시판 위주의 모바일웹이며, 글 보기 페이지에서 첨부파일 다운받은 후 다운로드 매니저가 실행되는 구조로 되어 있습니다.)
0 추천
재시작되는 것은 버그가 아닙니다.

메모리가 부족한 경우 백그라운드에 있는 앱은 언제든지 강제종료될 수 있습니다.

그걸 판단하는 기준이 베가와 갤럭시가 다른 것 같습니다.

 

<input type="file"> 문제는 4.4 웹뷰의 버그(?)입니다. (사실은 버그가 아니지만 ...)

4.4.4에서는 다시 동작합니다.
익명사용자 님이 2014년 7월 18일 답변
먼저, 답변 감사드립니다.
역시, 킷캣에서는 문제가 있는 거였군요.

재시작되는 부분 관련해서 하나 더 여쭤보고자 합니다.
메모리 문제라면, 이를 프로그래밍 관점에서 해결할 수 있는 방안은 없을까요?
사실, 개발을 잘 모르는 사람 입장에선, 이 현상이 버그나 오류로... 즉, 개발한 사람의 실수로 생각하기 쉽다는 건 어쩔 수 없는 것 같구요...
조금은 애매모호하지만, 뭔가 가볍게 만들기는 해야 할 것 같다는 생각이 듭니다.

이 부분에 대해 어찌 생각하시는지요?
onResume에서 상태를 저장한 후 다음에 다시 뜰 때 상태를 복구하면 됩니다. 이렇게 하면 강제종료되었다가 재시작되었더라도 사용자 입장에서는 정상 동작한 것처럼 보입니다.
...