eine andere Methode von onLocationChanged aufrufen?

T

the_time

Ambitioniertes Mitglied
0
Guten Morgen,
ich habe eine Activity um ein paar Daten(longitude, latitiude, timestamp und verfügbare wifi access points) zu berechnen. Diese Daten mussen in einer periodischen Zeit(60 sekunden) akualisiert werden. Longitude, Latitude und timestamp werden durch Kopplung "requestLocationUpdates" mit "onLocationChanged" aktualisiert. Ich habe eine andere Methode "check_wifi_available", die die stärkste Singnal einer wlan-Verbindung zurückliefert. Meine Frage ist, kann ich die "check_wifi_available" in der "onLocationchanged" aufrufen um alle Daten auf einem Schalg zu aktualisieren ohne mit BroadcastReceiver arbeiten zu müssen?

Also an sich funktioniert alles. Die Methode check_wifi_available wird von onLocationChanged aufgerufen und alle Daten werden dann jede 60 Sekunden akualisiert angezeigt aber ich weiß nicht so genau ob das so für die getScanResult methode gut ist weil die meisten rufen die getScanResult methode innerhalb BroadcastReceiver auf.

PHP:
        LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        LocationListener ll = new myLocationListener();
        lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5 * 1000, 0,
                ll);
PHP:
        public void onLocationChanged(Location location) {
            // TODO Auto-generated method stub
            if (location != null) {
                double plong = location.getLongitude();
                double pLat = location.getLatitude();
                
                Date d = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("dd.mm.yyyy hh:mm");
                String s = sdf.format(d);
                textTime.setText(s);

                textLat.setText(Double.toString(pLat));
                textLong.setText(Double.toString(plong));
                check_wifi_available();

            }
        }
 
Zuletzt bearbeitet:
Wenn ich mich jetzt nicht total irre, kannst du die Methode ohne Probleme von dort aufrufen. Man wird sie wahrscheinlich nur in einen BroadcastReciver packen, um eine Änderung erkennen zu können.
 
@Raise: meinst du in der onLocationchange() Methode soll ich check_wifi_available() in BoardcastReceiver packen? Ich dachte es geht ohne BoardcastReceiver weil die requestLocationUpdate() in einer periodischen Zeit aufgerufen wird. Die wifi access points werden immer vom android system nach 7 sekunden neu eingescannt :) also jedes mal wenn getScanResult in der "check_wifi_available" methode aufgerufen wurde, hat sie die Ergebnisse, die zuletzt eingescannt wurden also die Änderungen werden auf jeden fall auch ohne erfasst wenn ich mich nicht irre.
 
Ne :D
Ich meinte damit, dass man diese Methode im BroadcastReciver aufruft, um nach jedem Scan der durchgeführt wurde das Ergebniss irgendwie anzeigen zu lassen. Das ist aber nicht Pflicht, d.h du kannst es auch wie du es machst einfach in eine Methode packen und von dort aus auf die Ergebnisse des letzten durchgeführten Scans zugreifen. Da gibt es am Ende keine wirklich merklichen Nachteile, Probleme sollte es garkeine geben :)
 
  • Danke
Reaktionen: the_time
Egentlich habe ich sie die Methode vom onReceive() methode aufgerufen aber es nimmt 30 sekunden im Anspruch bis ein Ergebnis angezeigt wird, darum habe ich sie ohne gemacht denn ohne wird immer sofort angezeigt. Jemand kann mich gerne korriegen wenn ich falsch liege ;)
 

Ähnliche Themen

Helmut1A
  • Helmut1A
Antworten
7
Aufrufe
1.128
Helmut1A
Helmut1A
H
Antworten
2
Aufrufe
1.311
Hcman
H
Zurück
Oben Unten