gpt4 book ai didi

android - 从 Android 中的 UI 线程外部访问 GoogleMap

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:01 24 4
gpt4 key购买 nike

我正在为我的 Android 应用程序使用 Google Map Android API v2。我在 onCreate 中按如下方式初始化了 GoogleMap

SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
mGoogleMap = fm.getMap();

在我的应用程序中,我需要执行一些后台任务,为此我使用了 AsybcTask。在后台任务中取得进展时,我想更新 map 。请引用以下示例。

@Override
protected Void doInBackground(Void...voids) {
while(Condition)
{
mGoogleMap.clear();
mGoogleMap.addMarker(marker);
Thread.sleep(5000);
}
}

我知道我不能在 doInBackground 方法中直接访问 UI 组件。可以通过将应用程序的上下文解析为 AsyncTask 类来访问常见的 UI 组件,如按钮、编辑文本、 TextView 。但我想不出从 doInBackground 方法访问 GoogleMap 的方法。你能给我一个解决方案吗?

最佳答案

如果您的 AsyncTaskActivity 的一部分,您可以简单地使用 runOnUiThread 方法,如下所示:

@Override
protected Void doInBackground(Void...voids) {
while(Condition)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
mGoogleMap.clear();
mGoogleMap.addMarker(marker);
Thread.sleep(5000);
}
});
}
}

关于android - 从 Android 中的 UI 线程外部访问 GoogleMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26959703/

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