0

我有一个 Android 服务。该服务推出一类用于地理定位。这是代码。

public class Localizar implements LocationListener {
private LocationManager manejador;
private Context context;
private DBAdapter db;

public Localizar(Context context) {
    this.context = context;

    db = new DBAdapter(context);
}

public void start() {
    manejador = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);

    if (manejador.isProviderEnabled(LocationManager.NETWORK_PROVIDER)) {

        manejador.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 500, 0, this);

    }else  {

    }
}

public void stop() {
    manejador.removeUpdates(this);
}

private void saveData(double longitude, double latitude) {
    Toast.makeText(context, "G R A B A N D O   D A T O S", Toast.LENGTH_LONG).show();       
}


public void onLocationChanged(Location location) {

    saveData(location.getLatitude(), location.getLongitude());
}

public void onProviderDisabled(String proveedor) {
}

public void onProviderEnabled(String proveedor) {
}

public void onStatusChanged(String arg0, int arg1, Bundle bundle) {
} 

我的问题是 onLocationChanged 方法从未执行过。我做错了什么?谢谢!我在另一部手机上试过了,它可以正常工作,可能是我的手机坏了。我有一个三星galaxy DUOS.....

4

1 回答 1

0

你没有得到的原因有很多onLocationChanged

如果您在 Service 中运行它,请尝试添加Looper.getMainLooper(),例如:

 manejador.requestLocationUpdates(
                                            LocationManager.NETWORK_PROVIDER,
                                            500,
                                            0,
                                            this,
                                            Looper.getMainLooper()
                                            );
于 2013-10-12T13:26:20.170 回答