在Android地图

问题描述:

在下面的代码绘制路线:在Android地图

如果(c.moveToFirst())

{ 


    do{ 


    longitude=Integer.parseInt(c.getString(0)); 


    latitude=Integer.parseInt(c.getString(1)); 


    p = new GeoPoint(latitude,longitude); 


    geoPointsArray.add(p); 


    theRouteDraw(); 


    }while(c.moveToNext()); 


    } 

凡光标获得形式,其中我已存储的GPS数据的数据库(经度C,纬度)

  Cursor c=db.getAllData(); 

和:

theRouteDraw();是一种在两个GPS点之间画线的方法。

在我在上面进行的方式我geoPointsArray []我有所有这点,然后

我将它传递给theRouteDraw();这些点之间的界线是即刻绘制的!

现在我想设置在上面的代码的延迟,以便把一个点geoPointsArray []和调用theRouteDraw().......要绘制的线一步一步

如果我不要使用延迟我的应用程序被阻止了一段时间(不是FC),直到线被绘制为止......因为它获得了许多需要在地图上连接的点!

任何想法如何做到这一点?????????????????

您应该使用单独的线程来执行theRouteDraw()函数:请参阅AsyncTask类和示例(如http://labs.makemachine.net/2010/05/android-asynctask-example/)了解如何执行此操作。

这会阻止您的应用被阻止。

+0

不,这个问题不是阻塞部分(这是因为它必须在很多点之间画线),但我怎么会引入一个延迟或这种类型的东西,以便我的方法theRouteDraw()接收点一步一步....因此,所有的事情都是作为一个实时应用程序工作的 – adrian 2011-05-07 16:33:00

+0

好吧,逻辑是一样的:如果你有你的数据进入零碎,你需要有一个单独的线程更新路线覆盖,只要您决定收到足够的分数,就会在主UI线程上渲染叠加层。 – Femi 2011-05-07 16:36:07

+0

即使我正在读取数据库中的数据,我也可以使用单独的线程吗? – adrian 2011-05-07 17:08:21