본문으로 건너뛰기

Initialization / Release

SDK 생명주기​

FusedLocation은 애플리케이션 생명주기에 맞춰 초기화하고 해제해야 합니다.

단계API설명
지원 환경 확인isSupported()현재 환경이 FusedLocation SDK를 지원하는지 확인합니다.
초기화initialize()FusedLocation 인스턴스를 생성한 후 SDK를 초기화합니다.
위치 데이터 수신getLastKnownLocation(), registerFusedLocationCallback()initialize()를 호출한 후 위치 데이터 접근 가이드를 참고하여 필요한 방식으로 위치 데이터를 조회하거나 위치 업데이트를 수신합니다. 각 API에 필요한 권한도 함께 확인해야 합니다.
위치 업데이트 수신 중지unregisterFusedLocationCallback()더 이상 위치 업데이트가 필요하지 않을 때 등록한 리스너를 해제합니다.
리소스 해제release()SDK 사용이 끝나면 SDK 리소스를 해제합니다.

initialize()를 호출한 경우에는 SDK 사용이 끝날 때 반드시 release()를 호출해야 합니다. unregisterFusedLocationCallback()은 위치 업데이트 리스너를 해제하는 API이고 release()는 SDK 자체를 해제하는 API이므로 서로 대체할 수 없습니다.

초기화 및 해제 예시​

애플리케이션 범위에서 하나의 FusedLocation 인스턴스를 관리하는 예시입니다.

class MyApplication : Application() {
lateinit var fusedLocation: FusedLocation
private set

override fun onCreate() {
super.onCreate()

// 1. 애플리케이션 생성 단계에서 인스턴스를 생성합니다.
fusedLocation = FusedLocation(this)

// 2. 지원 여부를 확인한 후 SDK를 초기화합니다.
if (fusedLocation.isSupported()) {
fusedLocation.initialize()
} else {
// 위치 관련 UI와 기능을 비활성화합니다.
}
}

fun shutdownFusedLocation(listener: FusedLocationListener) {
// 3. 등록된 위치 업데이트 리스너를 먼저 해제합니다.
fusedLocation.unregisterFusedLocationCallback(listener)

// 4. SDK 사용이 끝나면 SDK 리소스를 해제합니다.
fusedLocation.release()
}
}

initialize()를 호출한 후 위치 데이터 API를 사용할 수 있습니다. 위치 업데이트를 등록한 경우 release()를 호출하기 전에 unregisterFusedLocationCallback()으로 리스너를 해제하세요. release()를 호출한 뒤에는 같은 인스턴스로 FusedLocation API를 호출하지 마세요. 다시 사용하려면 새 인스턴스를 생성하고 지원 여부를 확인한 후 초기화하세요.