我正在开发基于位置的应用。在这里我的要求是我想从我的设备跟踪用户位置,如uber或Ly ft App。 示例:如果披萨店(用户B)想要向我发送披萨(用户A),那么他可以分享他的用户ID,因此使用该ID,我可以进入我的设备并查看其确切的精确位置。但我想跟踪他,直到我需要如此在代码中实现这一点。如果您遇到这种情况,请帮助我了解架构。
我也可以实现上述场景,但我怀疑的是,如果我想检查纬度和经度并在我的地图中更新它,我可以在每次用户移动时如何在地图中显示而不刷新同一个用户
答案 0 :(得分:3)
创建一个线程,要求处理程序多次获取该位置。您需要使用Handler,因为getMyLocation方法只能从GUI Thread调用:
private class MyLocationThread extends Thread{
@Override
public void run() {
int loops = 0;
// we give the location search a minute
while(loops < 60){
// we have to try it over a handler, because getMyLocation() has to be called from GUI Thread -_-
_getMyLocationHandler.sendEmptyMessage(0);
if(isInterrupted()){
return;
}
// take a short nap before next try
try {Thread.sleep(1000);} catch(Exception e){}
loops++;
}
}
}
以下是处理程序的作用:
private Handler _getMyLocationHandler = new Handler(){
public void handleMessage(android.os.Message msg) {
if(getMap().isMyLocationEnabled() && getMap().getMyLocation() != null){
_locationWatcher.interrupt();
drawCurrentImagePositions();
}
}
};