2016-06-27 14 views
1

Ich habe ein Stück Code aus dieser Antwort genommen, um die IP-Ping-Ergebnisse des Servers in der App zu verfolgen. https://stackoverflow.com/a/28856469/6173138 Das Problem mit diesem Code ist, dass es nur die Ping-Änderungen beim ersten Lauf verfolgen konnte .. und ich möchte es regelmäßig verfolgen. Ich möchte, dass es wie die Erkennung der Internetverbindung mit BroadcastReceiver funktioniert, aber in meinem Fall würde Ping-Status erkennen.Wie Sie Netzwerkänderungen regelmäßig verfolgen

Kann mir bitte jemand helfen? Wirklich schätzen irgendwelche Vorschläge

Antwort

0

Sie können ScheduledThreadPoolExecutor verwenden, um regelmäßig Ihre AsyncTask laufen zu lassen und neue Pingstatus zu erhalten.

Zum Beispiel, wenn Sie Ihre AsyncTask zu überprüfen, den Ping alle 5 Minuten ausgeführt werden sollen:

ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1); 
scheduler.scheduleAtFixedRate(yourAsyncTask, 0, 5, TimeUnit.MINUTES); 
+0

Danke für die Antwort .. Wo soll ich dieses Stück in meinem Code platzieren? – emenpy

+0

Das hängt davon ab, wann Sie den Ping-Status starten und stoppen wollen. Im Allgemeinen möchten Sie es wahrscheinlich starten, wenn Ihre App im Vordergrund ist, und beenden, wenn die App im Hintergrund läuft, sodass sie nicht für immer und ewig ausgeführt wird. Siehe Aktivitätenlebenszyklen: https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle – nicobatu