как заставить событие слушателя geoQuery выполнить только один раз - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь показать сообщение Toast только один раз, но оно показывается несколько раз. Мой код ниже:

final GeoQuery geoQuery = geoFire.queryAtLocation(new GeoLocation(lat, lon), radius/1000);

geoQuery.addGeoQueryEventListener(new GeoQueryEventListener() {
    @Override
    public void onKeyEntered(String key, GeoLocation location) {


        Toast.makeText(MainActivity.this, "entered!!!", Toast.LENGTH_LONG).show();

        geoQuery.removeGeoQueryEventListener(this);
        geoQuery.removeAllListeners();

    }

    @Override
    public void onKeyExited(String key) {
    }

    @Override
    public void onKeyMoved(String key, GeoLocation location) {
    }

    @Override
    public void onGeoQueryReady() {
    }

    @Override
    public void onGeoQueryError(DatabaseError error) {
    }
});

Я пытался удалить слушателя ниже тоста, но он не работает. Есть идеи?

...