如何释放 Android 开发中使用的 Google 地图内存?

How do I release the Google map memory being used in Android development?

提问人:hanjiman 提问时间:11/4/2023 最后编辑:hanjiman 更新时间:11/6/2023 访问量:35

问:

下面列出的网站使用谷歌地图。但是,我不断收到来自内存的通知,该通知未被释放。如何释放内存?leakcanary

https://developers.google.com/maps/documentation/android-sdk/start?hl=ko

作为参考,我在 Fragment 中使用 Googlemap。 这是我尝试过的:

private var map: GoogleMap? = null
private var mapFragment: SupportMapFragment? = null

override fun onMapReady(googleMap: GoogleMap) {
    map = googlemap
}

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    mapFragment = childFragmentManager.findFragmentById(R.id.mapView) as SupportMapFragment
    mapFragment?.getMapAsync(this)    
}

override fun onDestroyView() {
    super.onDestroyView()
    map?.clear()
    mapFragment?.onDestroy()
}
Android Google-Maps 内存泄漏

评论


答:

0赞 ΓDΛ 11/4/2023 #1

您未使用 .super.onDestroyView()


override fun onDestroyView() {
        super.onDestroyView()
        map?.clear()
        mapFragment?.onDestroy()
        map = null
    }

评论

0赞 hanjiman 11/6/2023
哦,我忘了用.我的意思是在实际代码中编写。我没有在我询问的帖子中使用......我会编辑它。super.onDestroyView()super.onDestroyView()super.onDestroyView()
0赞 hanjiman 11/6/2023
我也尝试运行您提到的,但仍然存在内存泄漏问题。map = null