0

私は 1 つの Android サービスを持っています。このサービスは、ジオロケーション用に 1 つのクラスを起動します。これがコードです。

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 が実行されなかったことです。私は何を間違えましたか?ありがとうございました!別の電話で試してみたところ、正しく動作しました。おそらく私の電話が壊れています。私はサムスンギャラクシーDUOSを持っています.....

4

1 に答える 1

0

届かない理由はいくらでもあるonLocationChanged

Service で実行する場合は、次Looper.getMainLooper()のように add を試してください。

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