ANJ*_*ANJ 5 android google-maps android-asynctask
我正在为我的Android应用程序使用Google Map Android API v2.我在onCreate中按如下方式初始化了GoogleMap
SupportMapFragment fm = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
mGoogleMap = fm.getMap();
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我需要做一些后台任务,我正在使用AsybcTask.在完成后台任务的过程中,我想更新地图.请参考以下示例.
@Override
protected Void doInBackground(Void...voids) {
while(Condition)
{
mGoogleMap.clear();
mGoogleMap.addMarker(marker);
Thread.sleep(5000);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道我无法直接访问doInBackground方法中的UI组件.可以通过将应用程序的上下文解析为AsyncTask类来访问常见的UI组件,如按钮,edittexts,textview.但我无法找到一种从doInBackground方法访问GoogleMap的方法.你能给我一个解决方案吗?
如果你AsyncTask是你的一部分,Activity你可以简单地使用runOnUiThread方法,如下所示:
@Override
protected Void doInBackground(Void...voids) {
while(Condition)
{
runOnUiThread(new Runnable() {
@Override
public void run() {
mGoogleMap.clear();
mGoogleMap.addMarker(marker);
Thread.sleep(5000);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2008 次 |
| 最近记录: |