0
當我在手機上啓動應用程序時,服務的onCreate在不到一秒內被調用3-4次。Android服務重新啓動多次
另一方面,oncreate被設置爲啓動一個線程派生類,該類可以在logcat上打印設備的網絡IP。
古怪每次調用OnCreate中隨機給出任何實際的IP(192.168.1.xxx)或回送(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;
}
函數獲取IP的線程類
public String GetOwnIPAddress()
{
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
感謝移動東西到onStartCommand工作,但由線程打印的地址現在卡在環回地址127.0.0.1,但這應該是它自己的問題 – Allahjane
嗯,這實際上並不錯 - 本地主機的IP是127.0.0.1 :)請參閱http://stackoverflow.com/questions/6064510/how-to-get-ip-address-of-the-device獲取它的其他方式 –