카카오 맵 api 관련 질문입니다

안녕하세요. 안드로이드에서 카카오 맵 api를 사용중인 개발자입니다.

안드로이드에서 객체 생성할 때 현재 보여지고 있는 맵이 있는 상태에서 새로운 맵 객체를 생성하면

“DaumMap does not support that two or more net.daum.mf.map.api.MapView objects exists at the same time”

라는 예외를 볼 수 있습니다.

다음화면에도 맵을 보여주는 화면이 있어서 현재 보여지고 있는 맵을 startActivity 하면서 onPause 단계에서 맵을

removeView 하고 있습니다.

그런데 다음 activity로 가면서 removeView를 호출하면 맵이 없어지는 화면이 보이게 됩니다.

미관상 좋지 않아변경하려고하는데 생각보다 잘 되지 않습니다.

removeView를 라이프사이클에서 호출되는 곳이 변경되어야 하는지

아니면 따로 호출해야하는 함수가 있는지 알려주시면 감사합니다!

그리고 추가로 MapView에서 onSurfaceDestroyed라는 함수는 어떤 역할을 하는건가요?

1개의 좋아요

현재 구조상 두개 이상의 MapView를 생성하여 사용할 수 없는 구조입니다.
첫번째 화면에서 보이고 있던 MapView를 RemoveView 하더라도 메모리 상에 존재 하기 때문인데
그 View를 재 사용하는 방법이 유일한 해결책이나 언급하신 그런 이슈가 발생할 수 있습니다.
이 방법과 두번째 Activity를 띄울 때 별도의 Process로 띄우는 방법도 있긴 합니다.

onSurfaceDestroyed()는 내부적으로 사용하는 GLSurfaceView에서 호출해 주는 메서드 입니다.
SurfaceView가 Destroy된다는 이벤트 처리를 위해 사용합니다.

차기 버전에서는 그런 제약이 완화될 예정이나 현재로써는 완벽한 해결책을 드리기 어려운 상황입니다.

1개의 좋아요

상세한 설명 감사드립니다!!
설명해주신 내용을 토대로 해당 이슈 해결을 시도해보겠습니다.
그리고 차기 버전도 기대하겠습니다~!

뷰를 재사용해도 똑같은에러가 발생합니다. 2년이 지난 지금도 변한게 없네요.

1개의 좋아요