막무가내 삽질 블로그
안드로이드 ActivityCompat.finishAffinity 사용 본문
728x90
최근에 프로젝트 참여중 한가지 이상한점을 발견했다.
액티비티가 onDestroy 되었는데 계속 살아나는 것이였다............
????????????????????????????????? 이건 무슨 상황인가 싶었다.
A 액티비티에서 서버로 데이터를 전송 후 결과를 받으면 B 액티비티로 이동하고
B 액티비티에서 웹뷰가 띄워지는 구조다.
웹뷰를 종료 시키고 해당 액티비티를 나왔을때 finish()를 시켜주고 다시 백키를 누르면 웹뷰로 들어가졌다....
뭐지??????싶었다. 웹뷰라는 앱 외부 코드라도 해당 액티비티가 죽었는데..... 왜 살아나지...?
여기저기 찾아보다 웹뷰를 강제로 죽이는 방법, remove 하는 방법 이것저것 해봤는데 해결 하지 못했다.
그러던 도중 액티비티가 onDestroy 되어도 제대로 안죽어 있을 수 도 있다는 글을 보았다(출처 기록 하지못함, 찾는중)
이건 또 뭔소리인가 싶었다. 일단 급하게 ActivityCompat.finishAffinity(액티비티명.this) 로 해당 액티비티를 종료하니
해결 되었다. 좋은 방법인지는 모르겠다.
그리고 최근에 검색해서 다시 알아봤는데 webview 안에 clearcache() 메소드가 있는데 그걸 활용 하면 지울 수 있다고 한다. 해당 메소드는 내장메모리의 캐시가 완전히 삭제가 되지 않을 수 있다고 해서 완전히 삭제되는 코드를 찾았다.
시간 되면 다시 해봐야겠다.
'Android' 카테고리의 다른 글
안드로이드 mvp + retrofit + php 간단 정리 (0) | 2019.12.08 |
---|---|
Resources$NotFoundException: String resource ID (0) | 2019.12.07 |
안드로이드 레이아웃 인플레이터란? (LayoutInflater) (0) | 2019.12.05 |
안드로이드 뷰(View) 뷰그룹(ViewGrop) (0) | 2019.12.05 |
안드로이드 MVP 디자인패턴 간단한 정리 (0) | 2019.12.01 |
Comments