Wenn ich die App auf meinem Telefon starte, wird der Dienst onCreate 3-4 Mal in weniger als einer Sekunde aufgerufen.Android-Dienst, der mehrmals neu startet
andererseits ist das oncreate so eingestellt, dass es eine vom Thread abgeleitete Klasse startet, die die Netzwerk-IP des Geräts auf dem Logcat ausgibt.
weirdly jeder Aufruf oncreate gibt zufällig entweder die tatsächliche IP (192.168.1.xxx) oder die Loopback (127.0.0.1)
@Override
public void onCreate() {
super.onCreate();
TheService=this;
chargingState = GetChargingState();
if(mainActivity!=null)
mainActivity.UpdateDisplay(chargingState);
IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(new ChargingStateListener(),ifilter);
new NetworkHandler().findServer();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
Funktion der IP in der Gewinde Klasse erhalten
public String GetOwnIPAddress()
{
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
Danke das Verschieben von Sachen zu onStartCommand funktioniert, aber die Adresse, die durch den Thread gedruckt wird, ist jetzt bei der Loopback-Adresse von 127.0.0.1 fest, aber das sollte seine eigene Frage sein – Allahjane
Nun, das ist nicht wirklich falsch - die IP des lokalen Hosts ist 127.0.0.1 :) Siehe http://stackoverflow.com/questions/6064510/how-to-get-ip-address-of-the-device für andere Möglichkeiten, um es zu bekommen –