Android 使用infowindowadapter将数据发送到google地图
我正在尝试使用infowindowadapter将数据获取到google地图信息窗口。问题是某种鸡和蛋类型的问题。由于onPostExecute必须放在UI线程上,因此我需要将infowindowadapter放在onPostExecute方法中。但是,我必须使用infowindowadapter中的AsyncTask调用数据库。有人有这方面的经验吗?谢谢 但是,我必须使用infowindowadapter中的AsyncTask调用数据库 绝对不是。在调用Android 使用infowindowadapter将数据发送到google地图,android,google-maps,infowindow,Android,Google Maps,Infowindow,我正在尝试使用infowindowadapter将数据获取到google地图信息窗口。问题是某种鸡和蛋类型的问题。由于onPostExecute必须放在UI线程上,因此我需要将infowindowadapter放在onPostExecute方法中。但是,我必须使用infowindowadapter中的AsyncTask调用数据库。有人有这方面的经验吗?谢谢 但是,我必须使用infowindowadapter中的AsyncTask调用数据库 绝对不是。在调用GoogleMap上的setInfoWi
GoogleMap
上的setInfoWindowAdapter()
之前,必须已经加载了数据,因为InfoWindowAdapter
无法异步响应getInfoContents()
之类的回调
例如,在调用setInfoWindowAdapter()
,将光标
(或其他)传递给InfoWindowAdapter
子类”构造函数之前,执行查询以检索模型数据
我需要将infowindowadapter放在onPostExecute方法中
不,你不需要。在检索到对GoogleMap
的引用后,通常在Activity.onCreate
中调用GoogleMap.setInfoWindowAdapter
。为什么以后需要在任何地方更新InfoWindowAdapter
?它提供正确的视图
,使用标记
参数来感知数据
我必须使用infowindowadapter中的AsyncTask调用数据库
不,你不必这么做。我建议根本不要在那里这样做。而是创建某种模型,在其中保存要在地图上显示的数据。当您第一次调用它获取数据时,它不在内存中,它使用异步作业加载数据,但立即返回null。您还可以在此模型上设置一个观察者,加载完成后,系统会通知您并使用Marker.showInfoWindow()
刷新信息窗口以使用加载的数据。您的InfoWindowAdapter
再次被调用,但这次它将获取在内存中兑现的数据
也可以看到这个答案:但我的查询取决于单击的标记。因此,到那时,InfoWindowAdapter已准备好调用。我怎么能提前知道呢?感谢您的回复。您的回答让我想到创建一个HashMap,在异步任务期间将数据加载到其中。这就是你的想法吗?还有其他的方法吗。HashMap可以工作,但我需要确保数据在应用程序的整个生命周期中都保持不变。@KarlCobb:“这就是你的想法吗?”——类似的,是的。“我需要确保数据在应用程序的整个生命周期中保持不变”——使用静态数据成员作为数据库中所需信息的缓存副本。您可以尝试的另一种可能性是将信息窗口的
视图
传递到异步任务
中,并更新onPostExecute()
中的小部件。理想情况下,这是可行的;实际上,我怀疑它不会,因为信息窗口实际上显示的是从您的视图而不是视图本身创建的位图。谢谢你的回复!!