gpt4 book ai didi

android - getMapAsync() - 调用一次并保存结果,还是每次我需要 map 时调用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:52:05 27 4
gpt4 key购买 nike

Google Play 服务 6.5 添加了 getMapAsync方法,它允许我们异步检索支持 MapFragment(或 MapView)的 GoogleMap 对象。文档指出

The GoogleMap object provided by the callback is non-null.

我不太理解为什么这里需要异步检索(即什么情况可能导致已弃用的 getMap 方法返回 null),它有让我想到了以下问题:

使用 MapFragment 时,我是否应该在 onCreate 中调用一次 getMapAsync,存储(非空)GoogleMap 由回调返回,然后在我类(class)的其他地方引用这个存储的结果? 或者,我是否应该在每次需要与 GoogleMap 对象交互时调用 getMapAsync,并执行所有 map-相应回调中的相关工作?

第一个选项导致更紧凑的代码,所以如果可能我更愿意使用它。我存储的 GoogleMap 对象是否有可能变得“陈旧”或 null 的风险(在这种情况下,第二个选项会更安全)?

最佳答案

Google 的 map 相关示例,位于目录中

<path-to-sdk>/extras/google/google_play_services/samples/maps

保留一个引用,所以我相信这应该没问题。

您必须使用异步调用的原因是(我想),因为 map 可能在初始化时执行网络请求(要下载图 block 等,请参阅文档以获取更多信息)。如果是这种情况, map 需要在单独的线程上(部分)初始化。因此,您必须等到初始化完成后才能获取 GoogleMap

getMap() 函数可以正确返回 GoogleMap,但不能保证。如果您过早地调用 getMap() 函数, map 将不会被初始化,它会返回 null。

关于android - getMapAsync() - 调用一次并保存结果,还是每次我需要 map 时调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28432577/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com